WebGPU: Tipps und Lösungen zur Fehlerbehebung

François Beaufort
François Beaufort

Veröffentlicht am 7. Februar 2024, zuletzt aktualisiert am 17. Oktober 2025

In diesem Dokument wird erläutert, warum WebGPU im Chrome-Browser möglicherweise nicht funktioniert oder nicht wie erwartet funktioniert. Außerdem werden klare Schritte zur Behebung der Probleme beschrieben, sofern dies möglich ist.

Das folgende Beispiel zeigt einen JavaScript-Fehler, der auftreten kann, wenn gpu in navigator nicht verfügbar ist:

const adapter = await navigator.gpu.requestAdapter();
cancel Uncaught TypeError: Cannot read properties of undefined (reading 'requestAdapter')

Das kann einen der folgenden Gründe haben. Prüfen Sie die folgenden Punkte in dieser Reihenfolge:

  1. Für WebGPU ist Chrome 113 oder höher unter ChromeOS, macOS und Windows sowie Chrome 121 oder höher unter Android erforderlich. Prüfen Sie Ihre Version unter chrome://version und aktualisieren Sie sie gegebenenfalls.

  2. WebGPU ist nur in sicheren Kontexten verfügbar. Wenn Sie Ihren Code über ein unsicheres Protokoll (z. B. http:, file:) bereitstellen, verwenden Sie entweder das sichere Protokoll https: oder beheben Sie das Problem während der Entwicklung Ihrer Web-App auf eine der folgenden Arten:

    • Stellen Sie Ihren Code lokal auf http://localhost oder http://127.0.0.1 mit einem der folgenden Befehle bereit: npx http-server oder python3 -m http.server.

    • Fügen Sie die Quelle der Liste „Unsichere Quellen, die als sicher behandelt werden“ von chrome://flags/#unsafely-treat-insecure-origin-as-secure hinzu und starten Sie Chrome neu.

    • Installieren Sie Node.js und führen Sie npx servez --ssl aus, um Ihren Ordner über HTTPS mit einem gefälschten Zertifikat bereitzustellen. Sie erhalten in Chrome weiterhin eine Warnung, die Sie umgehen können, indem Sie auf „Erweitert“ und dann auf „Trotzdem fortfahren“ klicken.

    • Stellen Sie Ihren lokalen Webserver mit ngrok im Internet bereit.

Der GPU-Adapter ist null

Das folgende Beispiel zeigt einen JavaScript-Fehler, der auftreten kann, wenn der Adapter, den Sie durch Aufrufen von requestAdapter() erhalten, null ist:

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
cancel Uncaught TypeError: Cannot read properties of undefined (reading requestDevice)

Das kann einen der folgenden Gründe haben. Prüfen Sie die folgenden Punkte in dieser Reihenfolge:

  1. WebGPU ist deaktiviert, wenn der Nutzer in chrome://settings/system die Option „Grafikbeschleunigung verwenden, falls verfügbar“ deaktiviert hat. Prüfen, ob diese Einstellung deaktiviert ist, und sie wieder aktivieren

  2. WebGPU wird auf dieser Plattform noch nicht unterstützt. Sie können das Flag chrome://flags/#enable-unsafe-webgpu aktivieren und Chrome neu starten. Für die experimentelle Linux-Unterstützung müssen Sie auch das Flag chrome://flags/#enable-vulkan aktivieren. Weitere Informationen finden Sie unter WebGPU-Unterstützung in Headless Chrome.

  3. Die GPU-Hardware wurde explizit auf die Sperrliste gesetzt. Wenn in chrome://gpu die Meldung „WebGPU has been disabled via blocklist or the command line“ (WebGPU wurde über die Sperrliste oder die Befehlszeile deaktiviert) angezeigt wird, können Sie die Sperrliste für WebGPU-Adapter deaktivieren, indem Sie das Flag chrome://flags/#enable-unsafe-webgpu aktivieren und Chrome neu starten. Sie können die integrierte Liste für das Software-Rendering auch überschreiben, indem Sie das Flag chrome://flags/#ignore-gpu-blocklist aktivieren und Chrome neu starten.

  4. Für die in requestAdapter() übergebenen Optionen ist kein passender GPU-Adapter vorhanden. requestAdapter() mit verschiedenen Optionen aufrufen:

  5. Für WebGPU ist eine GPU (entweder Hardware oder softwareemuliert) erforderlich. Unter chrome://gpu können Sie prüfen, ob Chrome eine GPU erkennt.

  6. Der GPU-Prozess ist mehrmals abgestürzt. Sie können die Seite neu laden oder Chrome neu starten. Weitere Informationen finden Sie unter Best Practices für WebGPU-Geräteverlust.

WebGPU ist langsamer als WebGL

  1. Öffnen Sie chrome://gpu und prüfen Sie, ob „WebGPU: Hardware accelerated“ angezeigt wird. Wenn Sie „WebGPU: Software only, hardware acceleration unavailable“ (WebGPU: Nur Software, Hardwarebeschleunigung nicht verfügbar) sehen, müssen Sie möglicherweise Ihre GPU-Treiber aktualisieren.

  2. Wenn Sie WebGL-Konzepte direkt in WebGPU übersetzen, nutzen Sie möglicherweise nicht alle einzigartigen Optimierungen von WebGPU. From WebGL to WebGPU

Windows-spezifische Einschränkungen

Beachten Sie die folgenden Einschränkungen bei der Verwendung von WebGPU auf Windows-Geräten:

  • Chrome unterstützt die gleichzeitige Verwendung mehrerer GPU-Adapter nicht. Weitere Informationen finden Sie unter chromium:329211593.

  • Chrome verwendet immer denselben GPU-Adapter, der für andere Chrome-Arbeitslasten zugewiesen wurde. Bei Laptops ist das in der Regel die integrierte Grafikkarte, da sie weniger Strom verbraucht. Das bedeutet, dass die Option powerPreference keine Auswirkungen hat, wenn requestAdapter() aufgerufen wird. Sie können die Verwendung der leistungsstarken GPU erzwingen, sofern verfügbar, indem Sie das Flag chrome://flags/#force-high-performance-gpu aktivieren und Chrome neu starten.