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 |
瀏覽器相容性
載入中…