Benchmark methodology

How Volume Shader BM measures browser GPU performance

Volume Shader BM is a focused WebGL shader workload. It is designed to make fragment-shader performance, frame-time stability, and browser GPU behavior easy to inspect without installing a native benchmark suite.

WebGL render path

The benchmark runs in a browser WebGL context and keeps CPU-side work small so the visible result is dominated by shader and pixel workload.

Complexity levels

Presets alter work per pixel through ray-marching steps, shader math, and render scale. Higher complexity should lower FPS on the same device.

FPS and frame time

FPS summarizes throughput. Frame time describes how long frames take and is better for spotting uneven performance or throttling.

Repeatable comparisons

Reliable comparisons require matching browser, preset, power profile, window size, driver state, and thermal conditions.

Measurement flow

01

Create WebGL context

The browser initializes the GPU-backed canvas and compiles the shader program.

02

Run full-screen shader

A full-screen pass sends every visible pixel through the same volume/ray-marching workload.

03

Sample frame cadence

The app watches recent frame timing to report FPS and frame-time behavior.

04

Compare fixed conditions

Results are useful when browser, preset, power profile, and thermal state stay consistent.

Parameters that move the score

ParameterEffectWhat you see
Ray-marching stepsRaises shader math per pixelLower FPS, usually smoother detail
Resolution / canvas sizeRaises the number of shaded pixelsLarge FPS swings between window sizes
Shader kernel complexityAdds loops, branches, and transcendental mathSeparates high-end GPUs from mainstream devices
Thermal and power modeChanges sustained clock speedFrame time drifts upward during longer runs

How to read the output

MetricBest useCaution
Average FPSQuick throughput comparisonCan hide stutter if frame times are uneven
Frame timeStability and smoothness checkCompare the shape, not only one number
1% lowRough worst-case responsiveness signalNeeds enough samples to be meaningful
Device labelContext for the resultBrowser-reported GPU names can be generic

Recommended run protocol

Compatibility check

15-30 seconds

Confirm WebGL works and the page stays responsive.

Warm-up run

30-60 seconds

Let shader compilation, browser scheduling, and initial boost behavior settle.

Comparable score

60-120 seconds

Record FPS, 1% low, and frame-time behavior under fixed conditions.

Sustained run

5-10 minutes

Look for thermal throttling, power-limit drift, and widening frame-time tails.

Browser and display variables

VariableWhy it mattersRecord this
Browser familyChrome, Edge, Firefox, and Safari can use different GPU backends and shader compilers.Browser name and version.
Render sizeVolume shaders run per pixel, so canvas size and device pixel ratio directly change work.Window size, render scale, and display scale if known.
Refresh rateA 60 Hz display can hide headroom above 60 FPS if frame pacing is capped by presentation.Display refresh rate and whether the browser tab is foregrounded.
Power stateBattery saver, laptop balanced mode, and phone low-power mode can reduce clocks.Plugged in, battery mode, and performance profile.

Stability metrics

1% low FPS

Average of the slowest tail of frames, useful for visible slowdowns.

Watch for: Large gap between average FPS and 1% low.

P95 frame time

A high percentile frame-time value that shows how slow most of the worse frames are.

Watch for: P95 rising during a sustained run.

Stutter

A visible or measured frame-time spike that interrupts otherwise smooth output.

Watch for: Occasional long frames despite a good average.

Thermal drift

FPS gradually decreases as the device heats or power limits engage.

Watch for: A cold run scoring higher than a warmed run.

What the benchmark is good at

Volume Shader BM is useful for fast browser checks, laptop power-mode comparisons, mobile thermal behavior, and spotting large GPU differences with a shader-heavy scene.

It is intentionally narrower than 3DMark or a game benchmark. It does not measure every API feature, CPU bottleneck, storage, or full engine workload.

How to get stable results

Same browser and browser version
Same benchmark preset or shared settings
Same window size or render scale
Laptop plugged in; phone not in low-power mode
Brief warm-up before recording
Background apps and overlays closed

External references

Common methodology questions

What does Volume Shader BM measure?

It primarily measures browser-based shader throughput by running a WebGL volume/ray-marching workload and observing frame cadence.

Are results comparable across browsers?

They can be useful, but browser GPU backends, drivers, power profiles, and thermal limits can change results. Compare with the same browser where possible.

Why report frame time as well as FPS?

FPS shows average speed, while frame time helps reveal stability. A steadier frame-time range often feels better than a spiky higher average.