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
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
- Die WebGPU API