Note: This information is extracted from your WebGL context.
The GPU vendor is revealed through WebGL's WEBGL_debug_renderer_info extension, which exposes the manufacturer of your graphics processing unit. This information includes:
The WEBGL_debug_renderer_info extension was introduced to help developers identify GPU-specific rendering issues and optimize graphics performance for different hardware. While technically useful, it has become a powerful fingerprinting tool.
WebGL provides access to underlying OpenGL information through JavaScript. The debug renderer info extension exposes two key parameters:
UNMASKED_VENDOR_WEBGL - GPU manufacturer (Intel, NVIDIA, AMD, etc.)UNMASKED_RENDERER_WEBGL - Specific GPU model and driver infoMarket: Integrated graphics in most laptops and budget desktops
Typical Users: Office work, general computing, light gaming
Example String: "Intel Inc." or "Intel"
Market: Dedicated gaming and professional graphics cards
Typical Users: Gamers, 3D artists, video editors, ML engineers
Example String: "NVIDIA Corporation" or "NVIDIA"
Market: Gaming graphics cards and integrated APUs
Typical Users: Gaming, content creation, budget builds
Example String: "ATI Technologies Inc." or "AMD"
Market: Apple Silicon (M1, M2, M3) integrated GPUs
Typical Users: Mac users (2020+)
Example String: "Apple Inc." or "Apple"
Market: Mobile devices (Adreno GPUs)
Typical Users: Android smartphone/tablet users
Example String: "Qualcomm"
Market: Mobile devices (Mali GPUs)
Typical Users: Android devices, some Chromebooks
Example String: "ARM"
function getGPUVendor() {
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 vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
return vendor;
}
| Platform | Typical GPU Vendor | Notes |
|---|---|---|
| Windows Desktop | Intel, NVIDIA, AMD | Most diversity; reveals exact GPU model |
| macOS (Intel) | Intel, AMD | Macs use Intel integrated + AMD discrete |
| macOS (Apple Silicon) | Apple | M1/M2/M3 integrated GPUs |
| Linux | Intel, NVIDIA, AMD | Similar to Windows, driver info may vary |
| Android | Qualcomm, ARM, Mali | Mobile GPUs, less variety per vendor |
| iOS/iPadOS | Apple | Apple A-series or M-series chips |
| ChromeOS | Intel, ARM | Mostly integrated graphics |
GPU vendor information is a critical component of hardware fingerprinting. Combined with other GPU details, it creates a highly unique and persistent identifier.
Unlike cookies or browser settings, GPU vendor information is tied to physical hardware. It cannot be easily changed and persists across:
Advertising networks can use GPU vendor (combined with other attributes) to track you across different websites without cookies:
While there are only a few major GPU vendors, the combination with other GPU attributes creates very unique fingerprints:
Government agencies and law enforcement can use GPU fingerprints to track individuals across anonymous browsing sessions, even when using privacy tools.
Companies can identify employees accessing personal sites from work computers by matching corporate GPU configurations.
E-commerce sites can infer your wealth based on GPU (gaming GPUs = higher disposable income) and show different prices.
GPU vendor information can reveal if you're using outdated hardware with known security vulnerabilities, making you a target for attacks.
GPU vendor is particularly hard to protect against because:
1. Type about:config in address bar
2. Search for webgl.enable-debug-renderer-info
3. Set to false
Effect: Prevents websites from reading GPU vendor/renderer
1. Go to chrome://flags
2. Search for "WebGL"
3. Disable "WebGL" and "WebGL 2.0"
4. Restart browser
1. Type about:config
2. Set webgl.disabled to true
Trade-off: Disabling WebGL will break maps, games, 3D visualizations, and many modern web applications.
Set privacy.resistFingerprinting to true in about:config. This returns generic GPU information instead of real hardware details.
Warning: Spoofing GPU info can create an even more unique fingerprint if done incorrectly (inconsistent data).
Running browsers in VMs can mask real GPU hardware:
webgl.enable-debug-renderer-info in Firefox