the WebGPU preferred canvas format is reported beside the claimed platform
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 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… - drawing the same scene twice produces the same pixels
canvas-repeat-render-determinismCanvas noise is usually reasoned about as a trade: give up a stable hash, gain an unlinkable one. - reading the same framebuffer twice returns the same bytes
webgl-repeat-readback-determinismThe same assertion as the canvas row beside it, asked one layer down the graphics stack, and separate from it because a build can be… - MathML scripts are shaped with real metrics, not flattened to text
mathml-metrics-vs-osMathML metrics sit in the long tail of a deployed collector's signal inventory, read through an <mmultiscripts> element. - a hidden child realm lays text out exactly as the page does
hidden-iframe-layout-agreementA deployed commercial agent does not run most of its collectors in the page.
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.
