All tools

WebGL report

Your GPU as WebGL reports it, the driver limits behind the renderer string, and whether the renderer matches the operating system your browser claims.

Full check

What to do about it

Renderer ≠ OS

Pick a renderer string a machine of the claimed OS would report: ANGLE + Direct3D11 on Windows, Apple GPU / Metal on macOS, Mesa on Linux. Or claim the OS you actually run.

String format

Chromium wraps everything in “ANGLE (vendor, device, backend)”; Safari says “Apple GPU”; Firefox passes the driver string through on macOS and Linux. A string copied from another browser keeps the wrong wrapper.

Limits and extensions

MAX_TEXTURE_SIZE, precision formats and the extension list come from the real driver. Replacing only the renderer string produces a GPU that does not exist; replace every GPU value or none.

Software renderers

SwiftShader and llvmpipe mean no GPU: headless or a VM without passthrough. Run on hardware, or a VM with GPU passthrough.

How this test works

A WebGL context is created, the unmasked renderer and vendor read through WEBGL_debug_renderer_info, every implementation limit and shader precision format queried, the extension list collected, and a small scene rendered and read back twice. WebGL 2 limits and the WebGPU adapter are read the same way. The renderer is then interpreted: its driver backend implies an operating system, its formatting implies a browser, and both are compared with the User-Agent.