 #   GPU &amp; Graphics Fingerprint 

 Your graphics card reveals highly unique information through WebGL. GPU vendor, renderer, and driver details create a distinctive fingerprint that's nearly impossible to change.

   Data stored in `window.fingerprint.gpu`  

 

 ##### Why is GPU Information So Unique?

 Your GPU model, driver version, and supported extensions create a fingerprint with 10-15 bits of entropy. Combined with other signals, GPU data makes you identifiable among millions of users.

 

  ### Detected GPU

 Primary graphics processor 

 

 Detecting...

Vendor detection in progress

 

 

####   GPU Fingerprint Hash 

 Computing... 

 Sources: detecting...  Click hash to copy

 

 

  ### Canvas Fingerprint

 Rendered image varies by GPU and drivers 

 



 

 Subpixel rendering differences create unique patterns

 

  ### WebGL Information

 OpenGL ES 2.0 via JavaScript 

 



 

##### WebGL Extensions (0)



 

 

 

  ### WebGL 2.0 Information

 OpenGL ES 3.0 via JavaScript 

 



 

##### WebGL 2.0 Extensions (0)



 

 

 

  ### WebGPU (Experimental)

 Next-generation graphics API 

 



 

##### Adapter Features



 

 

##### Texture Format Capabilities

Click category headers to expand/collapse



 

 

##### WGSL Language Features



 

 

##### Miscellaneous



 

 

 

  ### GLSL Shader Compiler &amp; Visualizer

 Test shader compilation and see live results 

 

  Write or load GLSL shader code below to test compilation on your GPU. This helps identify driver-specific behaviors and shader compatibility.

 Uniforms available: `u_time` (float), `u_resolution` (vec2)

 

    

 

 

   Vertex Shader  attribute vec2 position; void main() { gl\_Position = vec4(position, 0.0, 1.0); } 

   Fragment Shader  precision mediump float; uniform vec2 u\_resolution; void main() { vec2 st = gl\_FragCoord.xy / u\_resolution; gl\_FragColor = vec4(st.x, st.y, 0.5, 1.0); } 

 

  

 

  Status: Ready - Click "Compile &amp; Render" or load an example 

 

 

 

  

 

  ### How GPU Fingerprinting Works

 

 

  Why GPU Data is So Unique  

GPU fingerprinting provides **10-15 bits of entropy**, making it one of the most distinctive signals:

- **Renderer String:** Includes GPU model, driver version, and sometimes manufacturer-specific details (e.g., "ANGLE (NVIDIA GeForce RTX 3080 Direct3D11 vs\_5\_0 ps\_5\_0)")
- **Extensions:** 30-50+ WebGL extensions, varying by GPU generation and driver
- **Capabilities:** Max texture size, viewport dimensions, and shader limits differ by hardware
- **Canvas Rendering:** Subpixel differences in rendering create unique visual fingerprints
 
Even identical GPU models can have different driver versions or manufacturer customizations, increasing uniqueness.

 

 

  Stability &amp; Tracking Persistence  

GPU fingerprints are **extremely stable**:

- Hardware doesn't change unless you physically upgrade your GPU
- Driver updates may slightly alter the fingerprint but usually preserve the core GPU model
- Works across all browsers on the same machine
- Persists across browser restarts, cache clears, and even OS reinstalls
 
This makes GPU fingerprinting ideal for **long-term tracking** and device identification.

 

 

  Protection Methods  

GPU fingerprinting is very difficult to prevent:

- **Blocking WebGL:** Breaks many websites (maps, 3D graphics, games)
- **Spoofing GPU info:** Can cause rendering errors and is detectable
- **Privacy browsers:** Tor Browser and Brave normalize GPU info, but with limited effectiveness
- **Virtual machines:** Show generic GPU (e.g., "llvmpipe" or "VMware"), which is itself distinctive
 
**Best defense:** Use Tor Browser (which blocks WebGL by default) or accept that GPU fingerprinting is nearly unavoidable for normal browsing.

 

 

 

 

 #####    

  

   Learn more: MDN Documentation