What a Browser GPU Benchmark Can and Can't Measure
We build a browser benchmark, so take this article as a manufacturer voluntarily printing the side effects on the label. A browser GPU score is a real measurement of something real — but the something is not the same thing 3DMark measures, and pretending otherwise is how benchmark numbers turn into astrology.
What the number actually contains
When our performance test reports that your machine sustained 600,000 particles at a stable frame rate, that figure is the product of a long chain:
- the GPU silicon, obviously;
- the driver, and the browser’s shims around it;
- the browser’s compositor, which schedules when your frames actually reach the screen;
- JavaScript and its garbage collector, on the scenes that stress the CPU;
- the OS power manager deciding, second by second, what clock speeds you deserve;
- thermals — chassis, fan curve, and how long ago you ran the last test;
- and everything else running: your 40 tabs, the video call, the antivirus’s afternoon scan.
A native benchmark bypasses several links of that chain on purpose, to isolate the hardware. A browser benchmark keeps them, and that cuts both ways.
Where a browser score is the wrong tool
Ranking GPUs across systems. The same graphics card can score meaningfully differently under different browsers, driver versions, or OSes, because the browser is a translation layer — WebGL calls get rewritten for whichever native API sits underneath (Metal on macOS, Direct3D on Windows). If you want to know whether one GPU model outmuscles another, read a native review; that’s the right instrument.
Absolute FPS predictions for games. A game engine with weeks of optimization work behind it does not perform like a browser canvas. A browser score correlates with gaming performance, loosely; it does not forecast it.
Fine margins. Run any browser benchmark five times and you’ll see a spread of a few percent for free. Differences inside that spread are noise. We flag thermally degraded runs and let you see per-scene results precisely so small gaps don’t get over-read.
Where a browser score is exactly the right tool
Measuring what the web can actually use. If what you care about is how heavy web apps, canvas tools, maps, and WebGL sites will feel on a device, the translation layers aren’t measurement error — they’re the phenomenon. A native benchmark can’t see a browser regression that halves your real performance; a browser benchmark exists in it.
Comparing your own machine to itself. Same device, same browser, before and after a driver update, an OS upgrade, or a suspicious slowdown — this is where browser benchmarks shine, because everything is held constant except the thing you changed. Your score history stays on your device for exactly this use.
Same-chain comparisons at scale. Ten thousand runs of the same versioned workload, bucketed by GPU family, produce genuinely useful medians — what an M-series MacBook or a mid-range Android typically delivers in a browser. That’s the dataset our anonymous samples build, with thresholds before we publish anything.
Instant triage on hardware you don’t own. No install, no admin rights, works on the used laptop you’re inspecting or the locked-down office machine. A test you can actually run beats a better test you can’t. (Speaking of which: the used-device screen routine.)
How we keep our number honest
Details in How the score works, but the short version of the discipline:
- Frame times, not FPS counters. We evaluate the 95th percentile of frame times over multi-second windows; a benchmark that averages away stutter is measuring marketing.
- A fixed frame budget. 16.67 ms regardless of your display’s refresh rate, so a 120 Hz laptop isn’t punished for having a nicer screen.
- Versioned workloads. Any change to what a scene draws bumps the benchmark version, and scores never compare across versions.
- Degradation flagged, not blended. If the device slows mid-run (usually heat), the result says so instead of quietly averaging the throttle into your number.
- No lab cosplay. The score is called a browser workload score, because that’s what it is.
Getting a number worth keeping
Close what you can, plug in, kill battery-saver, let the machine cool, and don’t touch anything during the run — background load and thermals are the two biggest sources of variance we see. Then run it twice and trust the second run more; the first one paid the warm-up costs.