GPUAdapter: limits 屬性

可用性有限

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

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

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

GPUAdapter 介面的只讀屬性 limits 返回一個 GPUSupportedLimits 物件,該物件描述了介面卡支援的限制。

您應該注意,瀏覽器不會報告每個 GPU 的確切限制,而是可能會報告不同限制的不同層級值,以減少可用於驅動式指紋識別的唯一資訊。例如,某個限制的層級可能是 2048、8192 和 32768。如果您的 GPU 的實際限制是 16384,瀏覽器仍將報告 8192。

鑑於不同瀏覽器對此的處理方式不同,並且層級值可能會隨時間變化,因此很難提供關於預期限制值的準確說明——建議進行徹底的測試。

一個 GPUSupportedLimits 物件例項。

示例

在下面的程式碼中,我們查詢 GPUAdapter.limits 值的 maxBindGroups,看它是否等於或大於 6。我們的理論示例應用程式理想情況下需要 6 個繫結組,因此如果返回值為 >= 6,我們將 6 新增到 requiredLimits 物件作為最大限制,並使用 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

瀏覽器相容性

另見