GPUDevice: limits 属性

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

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

limits 属性是 GPUDevice 接口的只读属性,它返回一个 GPUSupportedLimits 对象,该对象描述了设备支持的限制。将包含所有限制值,并且在创建设备时请求的限制(即,在调用 GPUAdapter.requestDevice() 时)将反映在这些值中。

注意:即使底层硬件支持,也并非所有限制都会按预期报告。有关更多详细信息,请参阅 GPUAdapter.limits

一个 GPUSupportedLimits 对象实例。

示例

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

然后,我们通过将该值记录到控制台来检查预期限制是否已在生成的设备上设置。

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

  console.log(device.limits.maxBindGroups);

  // ...
}

规范

规范
WebGPU
# dom-gpudevice-limits

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅