WebGL Fingerprint
Your WebGL fingerprint uniqueness
Estimating…
Computed locally in your browser. Uniqueness is a heuristic estimate — not from a global database.
How to use
- Open the page — WebGL context is created and parameters read automatically.
- Check vendor/renderer rows; Firefox may show hidden (no debug extension).
- Copy the fingerprint ID or Refresh after GPU driver updates.
FAQ
What is WebGL fingerprinting?
Scripts create a WebGL context and read GPU vendor/renderer strings, version, limits, and supported extensions. Combined, they often uniquely identify a graphics stack.
Why is vendor/renderer hidden?
Firefox and privacy Chromium builds block WEBGL_debug_renderer_info to reduce fingerprinting. You may still see WebGL version and extension hashes.
Does this identify my exact GPU model?
Sometimes — unmasked renderer strings often include chip names (e.g. Apple M series, NVIDIA model). When hidden, only capability hashes remain.
Software rendering?
SwiftShader or LLVMpipe renderers appear in unmasked strings when hardware acceleration is off — a distinct fingerprint class.
Is WebGL the same as WebGPU?
No. This tool uses WebGL1 context probes. WebGPU is separate; see [AI GPU test](/tools/ai-gpu-test) for WebGPU readiness.
Data uploaded?
All reads are local JavaScript WebGL API calls in your tab.
Introduction
WebGL Fingerprint collects GPU and graphics-stack signals available through a WebGL context: unmasked vendor and renderer when permitted, GL version, GLSL version, max texture size, and a hash of the sorted extension list. These fields feed commercial fingerprint libraries and fraud scores.
Seeing them helps explain why “same browser, different machine” still looks unique to trackers — and why browsers increasingly hide unmasked renderer info.
Parameters collected
| Field | Fingerprint value |
|---|---|
| UNMASKED_VENDOR_WEBGL | GPU vendor string |
| UNMASKED_RENDERER_WEBGL | GPU/renderer string |
| VERSION / GLSL | Driver and shader language levels |
| MAX_TEXTURE_SIZE | Hardware limit hint |
| Extensions hash | Sorted extension list → SHA-256 |
Common use cases
- Privacy comparison — Firefox strict vs Chrome on the same laptop.
- GPU debugging — confirm hardware acceleration vs SwiftShader fallback.
- QA — attach WebGL fingerprint ID when WebGL games fail on specific drivers.
- Layered audit — combine with canvas fingerprint.
Best practices
- Check
chrome://gpuor OS GPU panel when renderer shows hidden here but you need the real chip name. - Driver updates can change renderer strings — refresh after updating graphics drivers.
- For full Mandelbrot stress and FPS, use GPU stress test — different purpose, same WebGL family.
- Combined hash: what is my fingerprint.