the WebGPU preferred canvas format is reported beside the claimed platform
Check id webgpu-canvas-format-readout
What an ordinary browser yields
Contextual only. The preferred format is shown next to the claimed platform rather than judged against a table of what each platform ought to prefer.
What a detector infers
navigator.gpu.getPreferredCanvasFormat() returns the texture byte order the platform's compositor wants to be handed — and that preference belongs to the real graphics stack, not to the identity the browser presents. It is about as cheap as a probe gets: one call, no arguments, no context to create, one short string back. That combination is what makes it attractive to a detector and easy for a persona to miss, because nothing about a fingerprint profile suggests a WebGPU enumeration value needs attention. The row is REPORTED rather than scored for the reason that governs every table in this file: mapping a format to an operating system requires knowing what each platform currently prefers, those preferences have already changed once, and a stale table here would start accusing ordinary browsers. So the value is shown beside the claimed platform, where a reader who knows the mapping can draw the conclusion, and the audit does not pretend to a certainty it would have to keep re-earning.
How to resolve it
If a persona presents an operating system, make sure the graphics stack underneath it is the one that platform would have — the preferred canvas format is chosen by the compositor the browser is really talking to, and no page-level override reaches it.
Read in the wild by
CloakBrowser issues
A stealth-browser tracker records the WebGPU preferred canvas format as a one-call platform read that survived a persona untouched.
CloakHQ/CloakBrowser #145 (WebGPU preferred canvas format)
CloakHQ/CloakBrowser#145Every attribution traces to a published artifact. See the sources and their limits.
Nearby checks in Render & GPU
- the clear path and the shader path paint opaque red to the same bytes
webgl-draw-path-invarianceOpaque red can be produced two ways: the fixed-function clear path, and a fragment shader emitting vec4(1,0,0,1). - a mediump claim of fp32 precision is delivered by the arithmetic
shader-mediump-claim-vs-arithmeticgetShaderPrecisionFormat is a claim about float precision; a shader that computes a value only fp32 can represent is the GPU keeping or… - silence renders as exact zero through the Web Audio graph
audio-render-silence-integrityThe other audio checks compare two renders of a sound; this one renders silence and asserts it stayed silent, which catches a different kind… - a constant signal renders at exactly the amplitude it was given
audio-render-dc-integrityThe companion to the silence check below, and the input that one structurally cannot see. - the same audio render reproduces itself
audio-render-reproducibilityAn OfflineAudioContext render involves no output device and no clock. - a browser that implements EME can satisfy its mandatory ClearKey baseline
eme-clearkey-baselineEncrypted Media Extensions is the DRM entry point, and it has one part that cannot be missing. - one canvas encodes the same pixels through toBlob and toDataURL
canvas-toblob-vs-todataurlA canvas has three exits — getImageData, toDataURL and toBlob — and a build that perturbs canvas readback has to perturb all three… - the WebGL2 element-count limits are reported beside the renderer that claims them
webgl-max-elements-readoutMAX_ELEMENTS_INDICES and MAX_ELEMENTS_VERTICES are hints the driver publishes about how many indices and vertices it draws efficiently in…
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-canvas-format-readout belongs to.