ZonoTools
Home/Device Tools/WebGL Fingerprint

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

  1. Open the page — WebGL context is created and parameters read automatically.
  2. Check vendor/renderer rows; Firefox may show hidden (no debug extension).
  3. 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://gpu or 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.