GPUAdapter: limits 属性

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

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

limitsGPUAdapter 接口的只读属性,它返回一个 GPUSupportedLimits 对象,描述了适配器支持的限制。

需要注意的是,浏览器可能会报告不同限制的不同层级值,而不是报告每个 GPU 的确切限制,以减少可用于驱动式指纹识别的唯一信息。例如,某个限制的层级值可能是 2048、8192 和 32768。如果你的 GPU 的实际限制是 16384,浏览器仍然会报告 8192。

鉴于不同的浏览器会以不同的方式处理这种情况,而且层级值可能会随着时间的推移而改变,因此很难准确地说明应该期望什么限制值——建议进行全面测试。

一个 GPUSupportedLimits 对象实例。

示例

在以下代码中,我们查询 GPUAdapter.limitsmaxBindGroups 值,以查看它是否等于或大于 6。我们的理论示例应用程序理想情况下需要 6 个绑定组,因此,如果返回值 >= 6,我们向 requiredLimits 对象添加一个最大限制 6,并使用 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 requiredLimits = {};

  // App ideally needs 6 bind groups, so we'll try to request what the app needs
  if (adapter.limits.maxBindGroups >= 6) {
    requiredLimits.maxBindGroups = 6;
  }

  const device = await adapter.requestDevice({
    requiredLimits,
  });

  // ...
}

规范

规范
WebGPU
# dom-gpuadapter-limits

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅