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 des schreibgeschützten GPUAdapter-Interfaces gibt ein GPUSupportedFeatures-Objekt zurück, das zusätzliche Funktionalität beschreibt, die vom Adapter unterstützt wird.

Es sollte beachtet werden, dass nicht alle Funktionen in WebGPU in allen unterstützenden Browsern verfügbar sein werden, selbst wenn diese Funktionen von der zugrunde liegenden Hardware unterstützt werden. Dies könnte auf Einschränkungen des zugrunde liegenden Systems, des Browsers oder des Adapters zurückzuführen sein. Zum Beispiel:

  • Das zugrunde liegende System kann möglicherweise die Bereitstellung einer Funktion auf eine Weise garantieren, die mit einem bestimmten Browser kompatibel ist.
  • Der Browseranbieter hat möglicherweise keinen sicheren Weg gefunden, um die Unterstützung für diese Funktion zu implementieren, oder hat es einfach noch nicht geschafft.

Wenn Sie hoffen, eine bestimmte zusätzliche Funktion in einer WebGPU-Anwendung nutzen zu können, sind gründliche Tests ratsam.

Wert

Ein GPUSupportedFeatures-Objektinstanz. Dies ist ein setähnliches Objekt.

Beispiele

Im folgenden Code überprüfen wir, ob ein GPUAdapter die Funktion texture-compression-astc verfügbar hat. Falls ja, fügen wir es in das Array der requiredFeatures ein 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

BCD tables only load in the browser

Siehe auch