GPUDevice: limits Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die limits schreibgeschützte Eigenschaft des GPUDevice-Interfaces gibt ein GPUSupportedLimits-Objekt zurück, das die vom Gerät unterstützten Grenzen beschreibt. Alle Grenzwerte werden einbezogen, und die während der Erstellung des Geräts angeforderten Grenzen (d.h. wenn GPUAdapter.requestDevice() aufgerufen wird) spiegeln sich in diesen Werten wider.

Hinweis: Nicht alle Grenzen werden wie erwartet gemeldet, selbst wenn sie von der zugrunde liegenden Hardware unterstützt werden. Siehe GPUAdapter.limits für mehr Details.

Wert

Eine Instanz des GPUSupportedLimits-Objekts.

Beispiele

Im folgenden Code fragen wir den GPUAdapter.limits-Wert von maxBindGroups ab, um zu sehen, ob er gleich oder größer als 6 ist. Unsere theoretische Beispiel-App benötigt idealerweise 6 Bindgruppen. Wenn der zurückgegebene Wert >= 6 ist, fügen wir dem requiredLimits-Objekt eine maximale Grenze von 6 hinzu.

Wir überprüfen dann, ob die erwartete Grenze auf dem resultierenden Gerät gesetzt wurde, indem wir dessen Wert in die Konsole protokollieren.

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

  // …
}

Spezifikationen

Specification
WebGPU
# dom-gpudevice-limits

Browser-Kompatibilität

Siehe auch