GPUDevice: lost-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 schreibgeschützte lost-Eigenschaft der GPUDevice-Schnittstelle enthält ein Promise, das während der gesamten Lebensdauer des Geräts schwebend bleibt und mit einem GPUDeviceLostInfo-Objekt aufgelöst wird, wenn das Gerät verloren geht.

GPUAdapter.requestDevice() wird niemals null zurückgeben und wird nur abgelehnt, wenn die Anfrage ungültig ist, d.h. wenn sie die Fähigkeiten des GPUAdapter überschreitet. Wenn eine gültige Geräteanfrage aus irgendeinem Grund nicht erfüllt werden kann, kann sie jedoch ein Gerät zurückgeben, das bereits verloren gegangen ist. Außerdem können Geräte jederzeit nach der Erstellung aus verschiedenen Gründen verloren gehen (wie z. B. Browser-Ressourcenverwaltung oder Treiberaktualisierungen), daher ist es ratsam, immer mit verloren gegangenen Geräten angemessen umzugehen.

Viele Ursachen für verlorene Geräte sind vorübergehend, daher sollten Sie versuchen, ein neues Gerät zu erhalten, sobald ein vorheriges verloren gegangen ist, es sei denn, der Verlust wurde dadurch verursacht, dass die Anwendung das Gerät absichtlich zerstörte (d.h. mit GPUDevice.destroy()). Beachten Sie, dass alle WebGPU-Ressourcen, die mit einem vorherigen Gerät erstellt wurden (Puffer, Texturen usw.), mit dem neuen Gerät neu erstellt werden müssen.

Hinweis: Beachten Sie auch, dass ein GPUAdapter möglicherweise nicht mehr verfügbar ist, z. B. wenn die physische GPU vom System getrennt oder deaktiviert wird, um Strom zu sparen. Ab diesem Zeitpunkt kann der Adapter keine gültigen Geräte mehr zurückgeben und wird immer bereits verlorene Geräte zurückgeben.

Wert

Ein Promise, das mit einem GPUDeviceLostInfo-Objekt aufgelöst wird, wenn das Gerät verloren geht.

Beispiele

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.");
  }

  // Create a GPUDevice
  let device = await adapter.requestDevice(descriptor);

  // Use lost to handle lost devices
  device.lost.then((info) => {
    console.error(`WebGPU device was lost: ${info.message}`);
    device = null;

    if (info.reason !== "destroyed") {
      init();
    }
  });

  // …
}

Spezifikationen

Specification
WebGPU
# dom-gpudevice-lost

Browser-Kompatibilität

Siehe auch