GPUDevice: limits 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

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

GPUDevice 介面的只讀屬性 limits 返回一個 GPUSupportedLimits 物件,該物件描述了裝置支援的限制。所有限制值都將包含在內,並且在建立裝置時(即呼叫 GPUAdapter.requestDevice() 時)請求的限制將在這些值中得到反映。

注意: 即使底層硬體支援,並非所有限制都會按預期報告。有關更多詳細資訊,請參閱 GPUAdapter.limits

一個 GPUSupportedLimits 物件例項。

示例

在下面的程式碼中,我們查詢 GPUAdapter.limits 屬性的 maxBindGroups 值,看看它是否等於或大於 6。我們的理論示例應用程式理想情況下需要 6 個繫結組,因此如果返回值大於等於 6,我們會將最大限制設定為 6 並新增到 requiredLimits 物件中。

然後,我們透過將預期限制的值記錄到控制檯來檢查該預期限制是否已設定在生成的裝置上。

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

瀏覽器相容性

另見