A WebGPU device accepts every limit and feature its adapter advertises
requestDevice with every advertised feature and every limit at its advertised value succeeds, and the device reports those limits. N/A without an adapter (severity: info).
What a detector infers
A WebGPU adapter advertises limits and features, and the device it creates is validated against them by Dawn, Chrome's WebGPU implementation, using the adapter's real values (rounded down into a few standard tiers so they fingerprint less). So a request for a device with every advertised feature and every limit at its advertised maximum always succeeds on a genuine adapter: requestDevice only refuses what exceeds the adapter it came from.
A page-level spoof that inflates adapter.limits or adds names to adapter.features to look like a stronger GPU produces exactly such a request, and the device creation is refused; and a device that is created has to report the same limits it was asked for. That makes this the WebGPU counterpart of webgl-limits-vs-driver: the advertisement is tested by asking the implementation to honour it.
Only one side is measured — the request succeeded on every stock browser tested with a GPU, and the invariant is confirmed in Dawn's source — but no failing spoof was available, so the row is information only. requestDevice is called once per adapter, because a second call on the same adapter legitimately returns a lost device. N/A when no adapter is returned, which is ordinary for a blocklisted GPU.
How to resolve it
Do not edit adapter.limits or adapter.features in the page. The device is validated against the real adapter, so an advertisement larger than the hardware fails the moment anything asks for it.
Nearby checks in Render & GPU
- WebGL state reads back what the page just set
webgl-state-reads-backSome WebGL parameters are not capabilities but state the page itself controls. - readPixels writes only the pixels it was asked to read
webgl-readpixels-sentinelreadPixels writes into an array the page supplies, and the WebGL specification is precise about the edges: when the requested rectangle… - A worker OffscreenCanvas encodes the pixels it reads back
offscreen-canvas-exits-agreeA canvas has more than one way out. getImageData hands pixels straight to script; convertToBlob encodes the same pixels into a file, and… - WebGPU's preferred canvas format belongs to the claimed OS
webgpu-canvas-format-vs-osnavigator.gpu.getPreferredCanvasFormat() returns the texture format the platform's compositor wants to be handed, and Chrome on Windows and… - WebGL renderer (software vs hardware)
webgl-not-softwareThe audit reads UNMASKED_RENDERER through the WEBGL_debug_renderer_info extension and matches it against SwiftShader, llvmpipe and Software. - WebGPU vendor coheres with WebGL vendor
webgl-webgpu-vendorTwo independent graphics stacks in the same browser are backed by the same physical adapter: this check lowercases the WebGL UNMASKED_VENDOR… - WebGPU's architecture is the one Chrome's own table gives the GPU WebGL names
webgpu-architecture-vs-rendererGPUAdapterInfo.architecture is not free text. Chrome's WebGPU implementation derives it from the GPU's PCI device id through its own table… - WebGPU's subgroup size is the wave width of the GPU WebGL names
webgpu-subgroup-vs-rendererChrome's WebGPU implementation (Dawn) reports GPUAdapterInfo.subgroupMinSize from the driver: on Windows the Direct3D 12 backend reads…
Clearcote is a browser built for fingerprint coherence
It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.
This audit takes no position on how Clearcote scores on Render & GPU checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.
See the other checks in Render & GPU — the family webgpu-device-honours-adapter belongs to.
