Guide

Why First Run Scores Are Lower: Shader Compilation Explained

Why the first browser GPU run can be lower, how shader compilation affects FPS, and why public rows should use warm results.

🚀 volumeshadertest
Today
5 min read

The first benchmark run can be lower because the browser and driver may still be compiling and linking shader programs. Volume Shader BM Test uses a fragment shader with loop-heavy raymarching code, so the first run can include setup work that later runs do not repeat.

What happens before rendering

When a test mode starts, the browser creates WebGL shader programs. The driver compiles shader source, links it into a GPU program, allocates buffers and prepares the render path. Some of this cost happens before the first frame; some can still affect early frames.

How this affects the result

Symptom Likely cause What to do
First run is lower than second run Shader compile and cache warmup Compare the second run
First seconds stutter, then stabilize Driver pipeline setup Watch P10 FPS and stability
Every run gets worse Heat or battery throttling Let the device cool
Score drops only on battery Power policy Plug in or disable battery saver

Recommended protocol

Run the same mode once and treat it as warmup. Close the result panel. Run the same mode again under the same conditions. Record the second result. If the second and third results keep falling, the issue is probably thermal throttling rather than compilation.

Why this matters for public results

Public result rows should describe whether the run was a warm run, the browser used, the test mode and any obvious thermal condition. Without those fields, two rows with the same device name may not be comparable.

Useful next pages

Tags
Shader CompilationFPSMethodology