GPUAdapterInfo
注意:此功能在 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 |
浏览器兼容性
加载中…