GPUAdapter: features 属性

实验性: 这是一种 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

安全上下文: 此功能仅在 安全上下文 (HTTPS) 中可用,在一些或所有 支持的浏览器 中可用。

featuresGPUAdapter 接口的只读属性,它返回一个 GPUSupportedFeatures 对象,该对象描述了适配器支持的其他功能。

需要注意的是,并非所有功能都可以在所有支持 WebGPU 的浏览器中使用,即使这些功能得到底层硬件的支持。这可能是由于底层系统、浏览器或适配器中的限制。例如

  • 底层系统可能无法以与特定浏览器兼容的方式保证功能的公开。
  • 浏览器供应商可能没有找到安全实现该功能的方法,或者只是还没有完成该功能。

如果您希望在 WebGPU 应用程序中利用特定附加功能,建议进行彻底测试。

一个 GPUSupportedFeatures 对象实例。这是一个 类似集合 的对象。

示例

在以下代码中,我们检查一个GPUAdapter是否具有texture-compression-astc特性。如果有,我们将它推入requiredFeatures数组中,并使用GPUAdapter.requestDevice()请求具有该特性需求的设备。

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

  // ...
}

规范

规范
WebGPU
# dom-gpuadapter-features

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅