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

浏览器兼容性

另见