Back to Content

GPUAdapterInfo

files/en-us/web/api/gpuadapterinfo/index.md

latest3.3 KB
Original Source

{{APIRef("WebGPU API")}}{{SecureContext_Header}}{{AvailableInWorkers}}

The GPUAdapterInfo interface of the {{domxref("WebGPU API", "WebGPU API", "", "nocode")}} contains identifying information about a {{domxref("GPUAdapter")}}.

An adapter's GPUAdapterInfo can be retrieved using the {{domxref("GPUAdapter.info")}} property of the adapter itself, or the {{domxref("GPUDevice.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.

{{InheritanceDiagram}}

Instance properties

  • {{domxref("GPUAdapterInfo.architecture", "architecture")}} {{ReadOnlyInline}}
    • : The name of the family or class of GPUs the adapter belongs to. Returns an empty string if it is not available.
  • {{domxref("GPUAdapterInfo.description", "description")}} {{ReadOnlyInline}}
    • : A human-readable string describing the adapter. Returns an empty string if it is not available.
  • {{domxref("GPUAdapterInfo.device", "device")}} {{ReadOnlyInline}}
    • : A vendor-specific identifier for the adapter. Returns an empty string if it is not available.
  • {{domxref("GPUAdapterInfo.isFallbackAdapter", "isFallbackAdapter")}} {{ReadOnlyInline}}
    • : A boolean value. Returns true if the adapter is a fallback adapter, and false if not.
  • {{domxref("GPUAdapterInfo.subgroupMaxSize", "subgroupMaxSize")}} {{ReadOnlyInline}}
    • : The maximum supported subgroup size for the {{domxref("GPUAdapter")}}.
  • {{domxref("GPUAdapterInfo.subgroupMinSize", "subgroupMinSize")}} {{ReadOnlyInline}}
    • : The minimum supported subgroup size for the {{domxref("GPUAdapter")}}.
  • {{domxref("GPUAdapterInfo.vendor", "vendor")}} {{ReadOnlyInline}}
    • : The name of the adapter vendor. Returns an empty string if it is not available.

Examples

Access GPUAdapterInfo via GPUAdapter.info

js
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

js
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

{{Specifications}}

Browser compatibility

{{Compat}}

See also