GPUDevice: features 属性
features
是 GPUDevice
接口的只读属性,它返回一个 GPUSupportedFeatures
对象,该对象描述了设备支持的额外功能。仅在创建设备期间请求的功能(即,当调用 GPUAdapter.requestDevice()
时)才会包含在内。
注意: 并非所有支持 WebGPU 的浏览器都支持所有功能,即使底层硬件支持这些功能。有关更多详细信息,请参见 GPUAdapter.features
。
值
一个 GPUSupportedFeatures
对象实例。这是一种 类似集合 的对象。
示例
在以下代码中,我们检查 GPUAdapter
是否具有可用的 texture-compression-astc
功能。如果有,我们将其推送到 requiredFeatures
数组中,并使用 GPUAdapter.requestDevice()
请求具有该功能要求的设备。
然后,我们将 GPUDevice.features
集合中的所有项记录到控制台。此集合应该只包含一个项 - texture-compression-astc
- 因为这是创建设备时请求的唯一功能。
js
async function init() {
if (!navigator.gpu) {
throw Error("WebGPU not supported.");
}
const adapter = await navigator.gpu.requestAdapter();
if (!adapter) {
throw Error("Couldn't request WebGPU adapter.");
}
const requiredFeatures = [];
if (adapter.features.has("texture-compression-astc")) {
requiredFeatures.push("texture-compression-astc");
}
const device = await adapter.requestDevice({
requiredFeatures,
});
device.features.forEach((value) => {
console.log(value);
});
// ...
}
规范
规范 |
---|
WebGPU # dom-gpudevice-features |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。