Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
GPU: requestAdapter() Methode
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist inWeb Workers verfügbar.
DierequestAdapter()-Methode derGPU-Schnittstelle gibt einPromise zurück, das mit einerGPUAdapter-Objektinstanz erfüllt wird. Von diesem Adapter können Sie einGPUDevice, Adapterinformationen, Funktionen und Limits anfordern.
Beachten Sie, dass der Benutzeragent entscheidet, ob er einen Adapter zurückgibt. Falls ja, wird er entsprechend den angegebenen Optionen ausgewählt. Wenn keine Optionen angegeben sind, stellt das Gerät den Standardadapter zur Verfügung, der normalerweise für die meisten Zwecke ausreicht.
In diesem Artikel
Syntax
requestAdapter()requestAdapter(options)Parameter
optionsOptionalEin Objekt, das die folgenden Eigenschaften enthält:
powerPreferenceOptionalEin enumerierter Wert, der dem Benutzeragenten einen Hinweis geben kann, welche Klasse von Adapter aus den verfügbaren Adaptern des Systems ausgewählt werden soll. Verfügbare Werte sind:
undefined(oder nicht spezifiziert), was keinen Hinweis gibt."low-power", was einen Hinweis gibt, Energieeinsparungen gegenüber der Leistung zu priorisieren. Wenn Ihre Anwendung mit dieser Einstellung gut funktioniert, wird empfohlen, sie zu nutzen, da sie die Akkulaufzeit auf tragbaren Geräten erheblich verbessern kann. Dies ist normalerweise die Standardeinstellung, wenn keine Optionen angegeben sind."high-performance", was einen Hinweis gibt, die Leistung gegenüber dem Energieverbrauch zu priorisieren. Es wird empfohlen, diesen Wert nur anzugeben, wenn es absolut notwendig ist, da er die Akkulaufzeit auf tragbaren Geräten erheblich verringern kann. Es kann auch zu einem höheren Verlust vonGPUDeviceführen – das System wird manchmal beschließen, zu einem energiesparenderen Adapter zu wechseln, um Energie zu sparen.
Der Hauptzweck dieses Hinweises besteht darin, zu beeinflussen, welche GPU in einem System mit mehreren GPUs verwendet wird. Beispielsweise haben einige Laptops eine energiesparende integrierte GPU und eine leistungsstarke dedizierte GPU. Verschiedene Faktoren können beeinflussen, welcher Adapter zurückgegeben wird, einschließlich Batteriestatus, angeschlossene Bildschirme oder entfernbaren GPUs.
Hinweis:Unter Chrome auf Dual-GPU macOS-Geräten wird, wenn
requestAdapter()ohne einepowerPreference-Option aufgerufen wird, die leistungsstarke dedizierte GPU zurückgegeben, wenn das Gerät des Benutzers am Netzstrom angeschlossen ist. Andernfalls wird die energiesparende integrierte GPU zurückgegeben.
Fallback-Adapter
Der vom Benutzeragenten bereitgestellte Adapter kann einFallback-Adapter sein, wenn er als die am besten geeignete verfügbare Option bestimmt wird. Ein Fallback-Adapter hat im Allgemeinen erhebliche Leistungseinschränkungen im Austausch für eine Kombination aus größerer Kompatibilität, vorhersehbarerem Verhalten oder verbessertem Datenschutz. Zum Beispiel können einige Browser eine softwarebasierte Implementierung der API über einen Fallback-Adapter anbieten. Ein Fallback-Adapter wird nicht auf jedem System verfügbar sein.
Wenn Sie verhindern möchten, dass Ihre Apps auf Fallback-Adaptern ausgeführt werden, sollten Sie das AttributGPUAdapter.isFallbackAdapter überprüfen, bevor Sie einGPUDevice anfordern.
Hinweis:Die Spezifikation enthält eineforceFallbackAdapter-Option fürrequestAdapter(). Dies ist ein Boolean, der, wenn auftrue gesetzt, den Benutzeragenten zwingt, einen Fallback-Adapter zurückzugeben, wenn einer verfügbar ist. Dies wird jedoch noch von keinem Browser unterstützt.
Rückgabewert
EinPromise, das mit einerGPUAdapter-Objektinstanz erfüllt wird, wenn die Anfrage erfolgreich ist.
requestAdapter() wird aufnull aufgelöst, wenn kein geeigneter Adapter verfügbar ist.
Ausnahmen
Keine.
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."); } const device = await adapter.requestDevice(); // …}Spezifikationen
| Specification |
|---|
| WebGPU> # dom-gpu-requestadapter> |
Browser-Kompatibilität
Siehe auch
- DieWebGPU API