Hardware & Capabilities · Browser Tests

Graphics Card Test

Identify the graphics card and driver string your browser renders with, straight from WebGL.

Identifying your graphics card…

Asking the browser about your GPU…

Reading the WebGL vendor and renderer strings, the antialiasing sample count and, where the browser supports it, the WebGPU adapter.

A browser reports the GPU model and driver, never a serial number, and every machine with the same card and driver reports the same strings. This is a hardware description, not a unique device identifier.

On this page
  1. What this test reads
  2. Where the GPU name comes from
  3. WebGPU and adapter info
  4. When no real GPU appears
  5. A card name is not a serial
  6. What it means for tracking
  7. Checking the answer and acting on it

What the graphics card test reads

This page answers a plain question, what graphics card is this browser drawing with, and then shows the evidence behind the answer. It opens a WebGL context, asks for the vendor and renderer strings, and reads the limits the driver publishes: the maximum texture edge, the viewport size, the number of multisample antialiasing samples and the range of line widths it will accept.

WebGL is the reliable route because it is available almost everywhere and needs no permission. Where the browser also supports WebGPU, the page asks for a second opinion from that adapter. Where it does not, it says so rather than guessing. Nothing here requires a download, a driver utility or administrator rights.

A product answer and a privacy answer

If you only want to know which card you have, the two strings near the top are the answer. If you want to know what that disclosure costs you online, the WebGL fingerprint test treats the same values as a tracking signal.

Where the GPU name comes from

The default WebGL parameters, VENDOR and RENDERER, are deliberately vague and often return something like WebKit. The real names arrive through an optional extension, WEBGL_debug_renderer_info, whose UNMASKED_VENDOR_WEBGL and UNMASKED_RENDERER_WEBGL parameters spell out the manufacturer and the model.

What those strings contain depends on the platform. On Windows they usually come wrapped in an ANGLE prefix that also names the Direct3D feature level the driver is using. On macOS you tend to see Apple or AMD and Intel names, and on Linux the Mesa driver string. Because the text is assembled by the driver, it is a reliable read on the hardware and an unreliable one on anything else.

Some browsers withhold the extension for privacy, in which case only the masked values appear. The classification chips below mark that case clearly, and the device hardware info test covers the rest of the machine.

WebGPU and the newer adapter info

WebGPU is the successor to WebGL, built for compute and modern rendering. A page reaches it through navigator.gpu.requestAdapter(), which returns an adapter object. That adapter carries an info record with vendor, architecture, device and description fields, plus a large set of limits such as maxTextureDimension2D and maxBufferSize.

Those fields were designed with fingerprinting in mind, so browsers keep them coarse. You will often see a short vendor token and an architecture codename such as gen-12lp with an empty device name, which is enough to tell an integrated GPU from a discrete one but not enough to pin down a model. Availability still varies by browser and platform, so the panel above reports it explicitly rather than assuming it.

Where WebGPU is present it complements WebGL: the two APIs often disagree slightly on limits, and a tracker that reads both gets a slightly sharper picture than either alone provides.

When no real GPU appears

A software rasteriser is not a fault, and it is worth knowing why you might see one. SwiftShader on Chromium and llvmpipe on Firefox and Linux both mean the drawing is happening on the CPU rather than on a GPU.

Three situations produce it. Virtual machines and remote desktops often expose no 3D accelerator at all, so the browser has nothing to hand the page and falls back. Browsers also keep a blocklist of driver versions known to crash or render incorrectly, and when yours is listed the fallback is deliberate rather than accidental. Some headless and server environments do the same by configuration.

A card name is not a serial number

It is worth stating plainly what these strings are not. A renderer string identifies a model and a driver family, not the individual card, and not the person using it. Thousands of laptops ship with the same integrated GPU and the same driver version, and they all report the same text.

There is no browser API that returns a hardware serial, a MAC address or a machine identifier, and the graphics stack does not leak one. What it leaks is configuration. The limits table is a little sharper than the name alone, since two driver releases on the same card can differ in their extension set and maximum viewport, but it is still a description of a product rather than a tag on your device. The canvas fingerprint and the browser fingerprint work the same way.

What it means for tracking

A GPU description becomes a tracking tool only in combination. On its own it places you in a group of thousands or millions. Stacked with your screen size, fonts, timezone and language list, it helps cut that group down until it is small enough to follow you across sites without any cookie at all. That accumulation, not any single value, is the mechanism worth understanding.

If you want to reduce it, the options are the same as elsewhere: a browser that reports generic values, or reports them differently to each site, costs you nothing in performance and breaks very little. Manually spoofing one string tends to backfire, because a renderer that disagrees with the limits table underneath it is a distinctive pattern in itself. Run the fingerprint test afterwards to see whether the change actually helped.

Checking the answer and acting on it

If you came here to identify your card, the two strings near the top are the answer and the limits table is the evidence behind it. On Windows, expect an ANGLE prefix and a Direct3D feature level; on macOS, an Apple, AMD or Intel name; on Linux, a Mesa string naming the driver generation. If the name looks generic, check the blocklist case above before assuming anything is broken.

If you came to understand the privacy cost, the honest summary is that a card name on its own places you in a large group. It matters when it combines with the rest of your profile, which is what the fingerprint test measures end to end.

Frequently Asked Questions

How can a website see what graphics card I have?
Through WebGL. To draw 3D content a page creates a graphics context, and that context reports a vendor and renderer string plus a set of numeric limits. No permission is required and nothing on your screen changes. The test above performs that read and shows the result, including the software-renderer case where no real GPU is exposed.
Why does my graphics card show as "ANGLE"?
On Windows, Chrome and Edge translate WebGL calls through ANGLE, which forwards them to Direct3D. The renderer string therefore names both your card and the translation layer, for example ANGLE (Intel, Intel(R) UHD Graphics 620 Direct3D11 vs_5_0 ps_5_0, D3D11). Seeing ANGLE is normal and your card is still named inside the string.
Why is my GPU listed as SwiftShader or llvmpipe?
Those are software rasterisers: they draw on the CPU instead of the GPU. You will see them in virtual machines, remote desktops, some headless environments and when a browser falls back because the graphics driver is blocklisted or unstable. It is not a fault in your machine, but it does make this signal shared by everyone in the same setup.
What is WebGPU and why is the adapter blank?
WebGPU is the newer graphics API, and it exposes a small adapter description with vendor, architecture and device fields. Browsers deliberately keep those fields coarse, and some leave them empty on purpose, so a blank adapter is normal rather than an error. Firefox and Safari support varies, and the WebGL values above are the more consistently available ones.
Does this page store or send my GPU details?
No. The context is opened, queried and released inside your browser, and the copy button puts the summary on your clipboard for you only. Nothing is uploaded and nothing is written to storage. How a graphics signal fits into a wider profile, and what a tracker does with it, is covered on the WebGL fingerprint test.