GPUAdapterInfo

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

GPUAdapterInfo 介面是 WebGPU API 的一部分,包含有關 GPUAdapter 的標識資訊。

可以透過介面卡本身的 GPUAdapter.info 屬性,或者透過源自該介面卡的裝置的 GPUDevice.adapterInfo 屬性來獲取介面卡的 GPUAdapterInfo

此物件允許開發者訪問使用者 GPU 的特定詳細資訊,以便他們可以提前應用針對 GPU 特定錯誤的變通方法,或者提供不同的程式碼路徑以更好地適應不同的 GPU 架構。提供此類資訊確實存在安全風險——它可能被用於指紋識別——因此共享的資訊被最小化,並且不同的瀏覽器供應商可能會共享不同的資訊型別和粒度。

例項屬性

architecture 只讀

介面卡所屬 GPU 的系列或類別的名稱。如果不可用,則返回空字串。

description 只讀

描述介面卡的可讀字串。如果不可用,則返回空字串。

device 只讀

介面卡的供應商特定識別符號。如果不可用,則返回空字串。

isFallbackAdapter 只讀

一個布林值。如果介面卡是 備用介面卡,則返回 true,否則返回 false

subgroupMaxSize 只讀

介面卡支援的最大 子組大小

subgroupMinSize 只讀

介面卡支援的最小 子組大小

vendor 只讀

介面卡供應商的名稱。如果不可用,則返回空字串。

示例

透過 GPUAdapter.info 訪問 GPUAdapterInfo

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);

透過 GPUDevice.adapterInfo 訪問 GPUAdapterInfo

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);

規範

規範
WebGPU
# gpuadapterinfo

瀏覽器相容性

另見