GPUAdapter: features-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 features-Eigenschaft (nur lesbar) des GPUAdapter-Interfaces gibt ein GPUSupportedFeatures-Objekt zurück, das zusätzliche Funktionalitäten beschreibt, die vom Adapter unterstützt werden.

Es sollte beachtet werden, dass nicht alle Funktionen in jedem Browser, der WebGPU unterstützt, verfügbar sein werden, selbst wenn die Funktionen von der zugrunde liegenden Hardware unterstützt werden. Dies kann durch Einschränkungen im zugrunde liegenden System, im Browser oder im Adapter verursacht werden. Beispielsweise:

  • Das zugrunde liegende System könnte die Bereitstellung einer Funktion nicht in einer Weise garantieren, die mit einem bestimmten Browser kompatibel ist.
  • Der Browser-Anbieter hat möglicherweise keinen sicheren Weg gefunden, um die Unterstützung für diese Funktion zu implementieren, oder hat es einfach noch nicht umgesetzt.

Wenn Sie hoffen, in einer WebGPU-Anwendung eine bestimmte zusätzliche Funktion zu nutzen, wird eine gründliche Prüfung empfohlen.

Wert

Eine Instanz des GPUSupportedFeatures-Objekts. Dies ist ein setähnliches Objekt.

Beispiele

Im folgenden Code überprüfen wir, ob ein GPUAdapter die texture-compression-astc-Funktion zur Verfügung hat. Wenn ja, fügen wir sie dem Array der requiredFeatures hinzu und fordern ein Gerät mit dieser Funktionsanforderung an, indem wir GPUAdapter.requestDevice() verwenden.

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 requiredFeatures = [];

  if (adapter.features.has("texture-compression-astc")) {
    requiredFeatures.push("texture-compression-astc");
  }

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

  // …
}

Spezifikationen

Specification
WebGPU
# dom-gpuadapter-features

Browser-Kompatibilität

Siehe auch