How The GPU Stress Test Works
The test uses WebGL2 to render a full-screen Mandelbrot fragment shader every frame. For each pixel, the fragment shader runs an iterative complex-number escape calculation with an adjustable loop count (up to 5000 iterations). The shader has no early-out path once started, which means the GPU cannot skip work — every pixel either escapes the set and stops, or runs the full iteration budget. A small time-varying offset keeps the frame content changing so modern GPUs cannot cache or deduplicate identical frames. Result: a sustained, predictable GPU load whose intensity scales linearly with iteration count and resolution.
Buying a laptop for sustained GPU work? Use this stress test after purchase, and read our best laptops with good GPU guide before comparing RTX 5090 and RTX 5080 configurations.
Detecting Software Rendering
One of the most useful things this test exposes is whether your browser is actually using the GPU. Chrome, Firefox, and Safari all ship with software-rendering fallbacks (SwiftShader on Chrome, llvmpipe on Linux, Core Graphics fallback on older Macs) that kick in when hardware acceleration is disabled, the GPU driver is too old, or the user-profile has chrome://flags toggles set. When software rendering is active, the renderer string contains "SwiftShader", "llvmpipe", or "software", and you will see that flagged in red at the bottom of the tool. Throughput in software mode is CPU-bound at 5-15 fps regardless of your actual GPU — not a real benchmark, but a useful diagnostic. Fix: re-enable hardware acceleration in browser settings and update the GPU driver.
Reading The FPS Numbers
The instantaneous FPS shows the last frame's delta, which is noisy; the 1-second rolling average smooths that into a usable number. Minimum FPS (recorded after the first 30 frames to skip startup jitter) is usually the most important result — it reflects the hardest frame the GPU hit, typically after it warms up and the browser compositor settles. A GPU that holds 60 fps average but drops to 12 fps minimum is showing a thermal throttle event or a background system task. Stable hardware shows an average and minimum within 10-15% of each other.
Why GPU Vendor Info Is Often Hidden
Chrome began masking GPU vendor and renderer strings in 2020 as part of an anti-fingerprinting push. On a default Chrome install, WEBGL_debug_renderer_info returns generic values like "Google Inc." and "ANGLE (Intel, Intel(R) UHD Graphics, D3D11)" or is fully redacted. Firefox does similar under privacy.resistFingerprinting. The real GPU vendor and model can be found via: Windows Task Manager's Performance tab, macOS's System Information, lspci on Linux, or chrome://gpu (bypasses the web-facing redaction). This test tries to read what the browser exposes, and clearly labels when the info is hidden.