GPUAdapterInfo
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.
Note: This feature is available inWeb Workers.
TheGPUAdapterInfo interface of theWebGPU API contains identifying information about aGPUAdapter.
An adapter'sGPUAdapterInfo can be retrieved using theGPUAdapter.info property of the adapter itself, or theGPUDevice.adapterInfo property of a device that originated from the adapter.
This object allows developers to access specific details about the user's GPU so that they can preemptively apply workarounds for GPU-specific bugs, or provide different codepaths to better suit different GPU architectures. Providing such information does present a security risk — it could be used for fingerprinting — therefore the information shared is kept at a minimum, and different browser vendors are likely to share different information types and granularities.
In this article
Instance properties
architectureRead onlyThe name of the family or class of GPUs the adapter belongs to. Returns an empty string if it is not available.
descriptionRead onlyA human-readable string describing the adapter. Returns an empty string if it is not available.
deviceRead onlyA vendor-specific identifier for the adapter. Returns an empty string if it is not available.
isFallbackAdapterRead onlyA boolean value. Returns
trueif the adapter is afallback adapter, andfalseif not.subgroupMaxSizeRead onlyThe maximum supportedsubgroup size for the
GPUAdapter.subgroupMinSizeRead onlyThe minimum supportedsubgroup size for the
GPUAdapter.vendorRead onlyThe name of the adapter vendor. Returns an empty string if it is not available.
Examples
>Access GPUAdapterInfo via GPUAdapter.info
const adapter = await navigator.gpu.requestAdapter();if (!adapter) { throw Error("Couldn't request WebGPU adapter.");}const adapterInfo = adapter.info;console.log(adapterInfo.vendor);console.log(adapterInfo.architecture);Access GPUAdapterInfo via GPUDevice.adapterInfo
const adapter = await navigator.gpu.requestAdapter();if (!adapter) { throw Error("Couldn't request WebGPU adapter.");}const myDevice = await adapter.requestDevice();function optimizeForGpuDevice(device) { if (device.adapterInfo.vendor === "amd") { // Use AMD-specific optimizations } else if (device.adapterInfo.architecture.includes("turing")) { // Optimize for NVIDIA Turing architecture }}optimizeForGpuDevice(myDevice);Specifications
| Specification |
|---|
| WebGPU> # gpuadapterinfo> |