Note: This reveals your exact GPU model and driver information.
The GPU renderer string provides the most detailed information about your graphics hardware, including the exact model number, architecture, driver version, and rendering API. This goes far beyond just the vendor name:
The GPU renderer string is exposed through the same WEBGL_debug_renderer_info extension as the GPU vendor, but provides much more granular information. Originally intended for debugging and optimization, it has become one of the most powerful fingerprinting vectors available.
The renderer string format varies by platform and GPU vendor, but typically includes:
ANGLE (NVIDIA, NVIDIA GeForce RTX 4090 Direct3D11 vs_5_0 ps_5_0, D3D11)
Reveals: High-end gaming GPU, Windows OS, DirectX 11 backend
ANGLE (NVIDIA, NVIDIA GeForce RTX 3060 Ti Direct3D11 vs_5_0 ps_5_0, D3D11)
Reveals: Mid-range GPU, likely laptop or mid-tier desktop
ANGLE (Intel, Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0, D3D11)
Reveals: Intel integrated graphics, 8th-11th gen Intel CPU, business/budget laptop
ANGLE (Intel, Intel(R) Iris(R) Xe Graphics Direct3D11 vs_5_0 ps_5_0, D3D11)
Reveals: 11th gen or newer Intel CPU with improved integrated graphics
ANGLE (AMD, AMD Radeon RX 6800 XT Direct3D11 vs_5_0 ps_5_0, D3D11)
Reveals: High-end AMD gaming GPU (RDNA 2 architecture)
Apple M1 Pro or Apple M2 Max
Reveals: Exact Mac model generation, Apple Silicon Mac (2020+)
Adreno (TM) 650 or Qualcomm Adreno (TM) 730
Reveals: Snapdragon chipset, can narrow down device model
Apple A15 GPU or Apple M1 GPU
Reveals: iPhone generation or iPad model
function getGPURenderer() {
const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl') ||
canvas.getContext('experimental-webgl');
if (!gl) return 'WebGL not supported';
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
if (!debugInfo) return 'Extension not available';
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
return renderer;
}
| Platform | Typical Format | Information Revealed |
|---|---|---|
| Windows Chrome/Edge | ANGLE (...Direct3D11...) | GPU model + Direct3D + shader versions |
| Windows Firefox | Direct GPU model name | GPU model, sometimes driver version |
| macOS (All browsers) | GPU model name (Metal) | AMD GPU model or Apple Silicon model |
| Linux | Mesa DRI or GPU name | GPU model + Mesa driver version |
| Android Chrome | Adreno/Mali/PowerVR model | Mobile GPU (can identify device family) |
| iOS Safari | Apple A## GPU / Apple M# GPU | iPhone/iPad generation |
Chrome and Edge on Windows use ANGLE, which translates OpenGL to Direct3D. ANGLE strings include:
vs_5_0 ps_5_0 - Shader model 5.0 (DirectX 11)D3D11 - DirectX 11 backendThe GPU renderer string is one of the most unique identifiers available to websites. It creates an extremely stable fingerprint that persists across all privacy measures except hardware changes.
While there are thousands of different GPU models in use, the distribution is highly fragmented. Your specific GPU model combination is likely shared by less than 1% of users, often much less.
Example: If you have an "NVIDIA GeForce RTX 4070 Ti SUPER", you're in a tiny minority of internet users.
Unlike software attributes that can be changed, your GPU renderer string is:
Advertising networks can use GPU renderer + a few other attributes to:
Your GPU model reveals:
Companies can track employees visiting competitor websites by matching the unique GPU fingerprint of company-issued laptops.
Law enforcement or malicious actors can correlate anonymous posts with known identities by matching GPU fingerprints across platforms.
Advertisers can infer your wealth and interests from your GPU, showing different ads (or prices) to RTX 4090 users vs integrated graphics users.
Attackers can target users with specific GPU models known to have driver vulnerabilities or security flaws.
GPU renderer alone is highly unique, but combined with other attributes creates near-perfect identification:
Updating your GPU drivers might slightly change the renderer string (e.g., adding a driver version), but:
1. Type about:config in the address bar
2. Search for webgl.enable-debug-renderer-info
3. Set to false
Result: Websites cannot read your GPU renderer string
1. Type about:config
2. Search for privacy.resistFingerprinting
3. Set to true
Result: Firefox returns generic GPU information instead of real hardware details
1. Navigate to chrome://flags
2. Search for "WebGL"
3. Disable both "WebGL" and "WebGL 2.0"
4. Restart browser
1. Type about:config
2. Set webgl.disabled to true
Trade-offs:
privacy.resistFingerprinting enabled by defaultPoorly configured spoofing can make you MORE identifiable. If you spoof a GPU renderer but other attributes (like canvas rendering) reveal your real GPU, you create an even more unique fingerprint.
Running your browser in a VM shows the VM's virtualized GPU instead of your real one:
webgl.enable-debug-renderer-info = falseprivacy.resistFingerprinting = true