GPUAdapter:features 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

GPUAdapter 接口的只读属性 features 返回一个 GPUSupportedFeatures 对象,该对象描述了适配器支持的附加功能。

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

  • 底层系统可能无法保证以与特定浏览器兼容的方式公开某个功能。
  • 浏览器供应商可能尚未找到一种安全的方式来实现对该功能的支持,或者可能尚未开始着手实现。

如果您希望在 WebGPU 应用中利用某个特定的附加功能,我们建议进行彻底的测试。

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

示例

在以下代码中,我们检查 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

浏览器兼容性

另见