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
Complexity levels
FPS and frame time
Repeatable comparisons
Measurement flow
Create WebGL context
The browser initializes the GPU-backed canvas and compiles the shader program.
Run full-screen shader
A full-screen pass sends every visible pixel through the same volume/ray-marching workload.
Sample frame cadence
The app watches recent frame timing to report FPS and frame-time behavior.
Compare fixed conditions
Results are useful when browser, preset, power profile, and thermal state stay consistent.
Parameters that move the score
| Parameter | Effect | What you see |
|---|---|---|
| Ray-marching steps | Raises shader math per pixel | Lower FPS, usually smoother detail |
| Resolution / canvas size | Raises the number of shaded pixels | Large FPS swings between window sizes |
| Shader kernel complexity | Adds loops, branches, and transcendental math | Separates high-end GPUs from mainstream devices |
| Thermal and power mode | Changes sustained clock speed | Frame time drifts upward during longer runs |
How to read the output
| Metric | Best use | Caution |
|---|---|---|
| Average FPS | Quick throughput comparison | Can hide stutter if frame times are uneven |
| Frame time | Stability and smoothness check | Compare the shape, not only one number |
| 1% low | Rough worst-case responsiveness signal | Needs enough samples to be meaningful |
| Device label | Context for the result | Browser-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
| Variable | Why it matters | Record this |
|---|---|---|
| Browser family | Chrome, Edge, Firefox, and Safari can use different GPU backends and shader compilers. | Browser name and version. |
| Render size | Volume shaders run per pixel, so canvas size and device pixel ratio directly change work. | Window size, render scale, and display scale if known. |
| Refresh rate | A 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 state | Battery 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.