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, bevor Sie diese produktiv verwenden.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die schreibgeschützte Eigenschaft lost
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 dann abgelehnt, wenn die Anfrage ungültig ist, d.h. sie übersteigt die Fähigkeiten des GPUAdapter
. Wenn eine gültige Geräteanfrage aus irgendeinem Grund nicht erfüllt werden kann, kann es jedoch zu einem Gerät führen, das bereits verloren gegangen ist. Zusätzlich können Geräte jederzeit nach ihrer Erstellung aus verschiedenen Gründen verloren gehen (wie zum Beispiel Ressourcenverwaltung des Browsers oder Treiberaktualisierungen), daher ist es ratsam, verlorene Geräte immer sorgfältig zu handhaben.
Viele Ursachen für verlorene Geräte sind vorübergehend, daher sollten Sie versuchen, nach dem Verlust eines vorherigen Geräts ein neues zu erhalten, es sei denn, der Verlust wurde durch die absichtliche Zerstörung des Geräts seitens der Anwendung verursacht (d.h. mit GPUDevice.destroy()
). Beachten Sie, dass alle mit einem vorherigen Gerät erstellten WebGPU-Ressourcen (Puffer, Texturen usw.) mit dem neuen Gerät neu erstellt werden müssen.
Hinweis: Bedenken Sie auch, dass ein GPUAdapter
möglicherweise nicht mehr verfügbar ist, z.B. wenn die physische GPU vom System abgesteckt 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
BCD tables only load in the browser
Siehe auch
- Die WebGPU API