Skip to content
CheckItWorks

GPU Benchmark

This benchmark loads your GPU on purpose

Measuring real throughput means running your graphics card hard for about 8 seconds (or 30 seconds for the sustained-load check). Expect the page to feel slow while it runs, and expect it to use noticeably more battery and produce some heat — completely normal, and it stops the moment you leave this page or press Cancel.

Uses more battery than normal browsing · Can make the page feel slow while it runs · Stops instantly if you switch tabs or press Cancel

Quick Benchmark

Runs about 8 seconds of GPU work across three stages and reports real throughput numbers.

Shader fill rate

Not measured yet.

Draw call throughput

Not measured yet.

Texture sampling rate

Not measured yet.

Sustained Load (30s)

Runs the shader stage continuously for 30 seconds and compares the first 5 seconds against the last 5, to check for thermal or power throttling.

Summary

  • WebGL support
  • Hardware acceleration
  • Renderer identity
  • GPU selection
  • Shader throughput
  • Draw call throughput
  • Texture throughput
  • Sustained load
  • Context stability
  • WebGPU

Most "GPU test" pages online just render a spinning 3D scene and hope it looks smooth. This one measures real GPU work — completed per fixed time budget, rendered off-screen so your monitor's refresh rate can never cap the result — and reports it honestly: three separate throughput figures with their own uncertainty, whether your browser is actually using your graphics hardware at all, and whether that throughput holds up under a longer, sustained load. It refuses to guess at things no browser API can see: no VRAM figure, no cross-device score, no temperature, and no refresh rate (that's the job of the FPS test, not this one).

How it works

  1. Close Other GPU-Heavy Tabs and Apps. On a laptop, plug in and set the power mode to performance first — battery-saving modes cap GPU clocks invisibly, the same way they cap frame rate on the FPS test.
  2. Read the Capability Report. It appears the moment the page loads, needs no permission, and runs no GPU load at all — just what your browser is willing to tell a web page about your graphics hardware.
  3. Confirm the Safety Notice. The benchmark deliberately loads your GPU hard: that uses more battery and produces some heat, and the page will feel slow while it runs. Read it once, then confirm.
  4. Run the Quick Benchmark. About 8 seconds. Read the three throughput figures — shader fill rate, draw call throughput, texture sampling rate — each with its own unit and uncertainty.
  5. Run the Sustained-Load Check If You're Chasing Heat. A separate 30-second button. If your machine gets slower the longer you use it, this is the check that actually tests for it, by comparing early throughput against late throughput.
  6. Read the Summary, Not Just the Numbers. Hardware acceleration, GPU selection, and context stability are the findings that matter most. The raw throughput rates are context for comparing your own machine over time, not a score to compare against someone else's.

What This Test Actually Measures

Every stage of the benchmark renders to an off-screen surface that is never shown on your monitor and never composited — so nothing about the result can be capped by your display's refresh rate the way a visible animation would be. The reported number is work completed divided by real elapsed time: pixel-shader iterations per second, draw calls per second, or texture samples per second. That is a genuine measure of GPU throughput, and it is a structurally different thing from a frame rate.

This is also why this page never shows an FPS or Hz number anywhere — that ground belongs entirely to this site's FPS test, which owns display-refresh-rate inference. Conflating the two would misreport a monitor's cap as a graphics card's speed.

Reading Your Capability Report

WebGL 2 is the modern baseline nearly every current browser supports; WebGL 1 only is a real but shrinking minority, mostly older devices; no WebGL at all means this page can't measure or report anything further about your graphics hardware.

The limits table below it is a direct readout of what your graphics driver reports back to the browser — maximum texture size, how many samples it can anti-alias with, how many textures a single shader can sample at once, and similar hard ceilings. The extensions list picks out a curated handful worth explaining (floating-point render targets, anisotropic filtering, compressed texture formats) out of the 30-40+ a real browser typically supports.

Why Your GPU's Name Might Be Hidden

Safari always returns a constant string — "Apple GPU" — never a real model name, on every Mac and iPhone regardless of which chip is actually inside. Firefox generalizes or withholds the string entirely when its own fingerprinting-resistance setting is turned on. This is a deliberate browser privacy decision, not a bug on this page's part, and a constant value is not a measurement — so rather than dressing a placeholder string up as a real GPU model, this page states plainly that the name is hidden and explains why.

None of this affects the throughput numbers below it. A hidden name and a fully-measured shader fill rate are completely independent — your browser can refuse to name your GPU while this page still measures exactly how fast it is.

Software Rendering: the Single Most Important Thing This Page Can Tell You

A software renderer means your CPU is pretending to be a graphics card — every pixel is computed in software, at a small fraction of real hardware speed, whether or not the reported name looks like a real GPU. This page detects it two ways at once: a decisive software-family renderer string (SwiftShader, llvmpipe, Microsoft Basic Render Driver), or a hardware-looking name whose measured throughput is far below what any real GPU produces — the second case usually means a degraded or emulated path hiding behind a normal-sounding name.

  • Hardware acceleration turned off in your browser's own settings.
  • A specific GPU driver on your browser's internal blocklist, often after a known driver bug.
  • Running inside a remote desktop or virtual machine session, where the real GPU usually isn't passed through at all.
  • A badly outdated or corrupted graphics driver.

Sustained Load and Thermal Throttling

The 30-second sustained check repeats the shader stage continuously and compares the first 5 seconds of throughput against the last 5, reporting how much of the starting rate survived. A fanless phone or a thin ultrabook losing a real chunk of throughput after 30 seconds of full load is normal engineering, not a fault — small, sealed devices are built to throttle rather than overheat, and this page frames the result that way rather than as a verdict on your hardware.

This page never prints a temperature, because no web API exposes one. Retention percentage is the honest proxy: it tells you how much your throughput actually dropped, without pretending to know why in degrees.

Laptops With Two GPUs: Why the Fast One May Never Engage

A gaming or creator laptop with both an integrated and a discrete GPU normally lets an application request either one, via a hint called powerPreference. This page requests BOTH — a low-power context and a high-performance one — and compares the two adapters' identities. Two genuinely different renderer strings means the fast GPU really did engage for the high-performance request.

The same renderer string on both requests does not prove your dGPU is broken — a single-GPU machine produces exactly the same result, completely normally. It is real, useful information on a machine that is SUPPOSED to have two adapters, though: it can mean a hybrid-graphics driver setting, a MUX-switch configuration, or a genuine fault worth investigating with your laptop's own GPU-selection software before assuming the worst.

What This Test Is Not

  • Not a VRAM reading — no web API exposes how much video memory your GPU has.
  • Not a cross-device score — there is no composite number, no tier ladder, and no percentile ranking anywhere on this page.
  • Not a temperature or wattage reading — no browser API exposes either one.
  • Not a refresh-rate or FPS measurement — see the FPS test for that.
  • Not a driver-level GPU timer. The browser extension that would enable one, EXT_disjoint_timer_query_webgl2, exists only in Chrome and Edge and is disabled by default even there, so using it would produce one number on Chrome and a structurally different one everywhere else — this page's timing is plain wall-clock instead, which behaves identically on every browser.

Frequently asked questions

Why doesn't this show my graphics card's name?

Safari always returns a constant "Apple GPU" string, and Firefox generalizes or withholds the real name when its fingerprinting-resistance setting is on. This is a deliberate browser privacy decision. A constant string is not a measurement, so this page states plainly that the name is hidden rather than showing a placeholder as if it meant something.

What does "software renderer" mean and why does it matter so much?

It means your CPU is computing every pixel in software instead of your actual GPU doing it, typically at a small fraction of real hardware speed. It's the single most consequential thing this page can find, because it invalidates every other number on the page as a comparison to real hardware.

Why is my result different from a desktop benchmark like 3DMark?

A browser benchmark runs through several extra layers a native benchmark doesn't — the browser's own compositor, its GPU sandboxing process, and (on some platforms) a translation layer like ANGLE between WebGL and the native graphics API. Those layers add real, unavoidable overhead, so a browser number is honestly lower than a native one on the same hardware, not comparable to it.

Can this tell me how much VRAM my card has?

No. No web API exposes video memory size to a browser page, so this page doesn't guess at one.

My laptop has a dedicated GPU — why doesn't it show up here?

The dual-GPU check compares the renderer string a low-power request gets against a high-performance one. If both come back identical, either this machine only has one GPU after all, or your dGPU isn't engaging for this page — check your laptop's own GPU-selection software (NVIDIA Optimus, AMD Switchable Graphics) before assuming a fault, since a single-GPU machine produces the exact same result completely normally.

Is this safe to run on my phone? Will it overheat?

It's designed to be bounded and safe: the quick benchmark is about 8 seconds, the sustained check is capped at 30, and both stop the instant you switch tabs or press Cancel, since the run is driven one step per animation frame — which physically can't continue in a backgrounded tab. Expect real heat and battery use while it runs, same as any GPU-heavy app; that's not a malfunction.

Why do Chrome, Firefox, and Safari give different numbers on the same machine?

Each browser has its own graphics pipeline, its own driver-translation layer, and its own scheduling overhead on top of the same physical GPU — so different numbers on different browsers on identical hardware are expected, not a sign anything is wrong.

Does this measure my frame rate?

No — deliberately. Every stage renders off-screen, so nothing here is capped by your monitor's refresh rate. This site's FPS test owns frame-rate and refresh-rate measurement; this page never shows an FPS or Hz number anywhere.

Why is there no temperature reading?

No web API exposes a device's temperature to a browser page. The sustained-load check reports a retention percentage instead — how much of your starting throughput survived 30 seconds of continuous load — which is the honest, measurable proxy for throttling this page actually has access to.

Every measurement — capability report, throughput figures, sustained-load retention, and context-loss events — is computed entirely inside this browser tab from your own graphics driver's answers to standard WebGL and WebGPU calls. Nothing about your GPU, your session, or your results is ever uploaded or sent anywhere.