Gepubliceerd: 7 februari 2024, Laatst bijgewerkt: 17 oktober 2025
In dit document wordt uitgelegd waarom WebGPU mogelijk niet werkt of niet werkt zoals verwacht in de Chrome-browser. Ook worden duidelijke stappen beschreven om de problemen waar mogelijk op te lossen.
navigator.gpu is ongedefinieerd
Het volgende voorbeeld toont een JavaScript-fout die kan optreden wanneer gpu
niet beschikbaar is in navigator
:
const adapter = await navigator.gpu.requestAdapter();
cancel Uncaught TypeError: Cannot read properties of undefined (reading 'requestAdapter')
Dit kan een van de volgende oorzaken hebben. Bekijk ze in deze specifieke volgorde:
WebGPU vereist Chrome 113 of hoger op ChromeOS, macOS, Windows en Chrome 121 of hoger op Android. Controleer uw versie op
chrome://version
en werk deze indien nodig bij.WebGPU is alleen toegankelijk voor beveiligde contexten. Als u uw code via een onveilig protocol (bijvoorbeeld
http:
file:
aanbiedt, gebruik dan het beveiligdehttps:
-protocol of los dit op tijdens de ontwikkeling van uw webapp op een van de volgende manieren:Dien uw code lokaal in op
http://localhost
ofhttp://127.0.0.1
met een van de volgende opdrachten:npx http-server
ofpython3 -m http.server
.Voeg de oorsprong toe aan de lijst 'Onveilige oorsprongen die als veilig worden behandeld' via
chrome://flags/#unsafely-treat-insecure-origin-as-secure
en start Chrome opnieuw.Installeer Node.js en voer
npx servez --ssl
uit om je map via https te serveren met een nepcertificaat. Je krijgt nog steeds een waarschuwing in Chrome die je kunt omzeilen door op 'Geavanceerd' en vervolgens op 'Doorgaan naar...' te klikken.Maak uw lokale webserver toegankelijk via internet met ngrok .
De GPU-adapter is nul
Hieronder ziet u een voorbeeld van een JavaScript-fout die u kunt krijgen wanneer de adapter die u krijgt door requestAdapter()
aan te roepen, null is:
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
cancel Uncaught TypeError: Cannot read properties of undefined (reading requestDevice)
Dit kan om een van de volgende redenen gebeuren. Bekijk ze in deze specifieke volgorde:
WebGPU is uitgeschakeld wanneer de gebruiker 'Grafische versnelling gebruiken indien beschikbaar' heeft uitgeschakeld in
chrome://settings/system
. Controleer of deze instelling is uitgeschakeld en schakel hem weer in.WebGPU wordt nog niet ondersteund op dit platform. U kunt de vlag
chrome://flags/#enable-unsafe-webgpu
inschakelen en Chrome opnieuw opstarten. Voor experimentele Linux-ondersteuning moet u ook de vlagchrome://flags/#enable-vulkan
inschakelen. Bekijk WebGPU-ondersteuning in Headless Chrome voor meer informatie.De GPU-hardware is specifiek op de blokkeerlijst geplaatst. Als u in
chrome://gpu
de melding "WebGPU is uitgeschakeld via de blokkeerlijst of de opdrachtregel" ziet, kunt u de blokkeerlijst voor WebGPU-adapters uitschakelen door de vlagchrome://flags/#enable-unsafe-webgpu
in te schakelen en Chrome opnieuw te starten. U kunt de ingebouwde softwarerenderinglijst ook overschrijven door de vlagchrome://flags/#ignore-gpu-blocklist
te schakelen en Chrome opnieuw te starten.Er is geen overeenkomende GPU-adapter voor de opties die zijn doorgegeven in
requestAdapter()
. ProbeerrequestAdapter()
aan te roepen met andere opties .WebGPU vereist een GPU (hardware of softwarematig geëmuleerd). U kunt controleren of Chrome een GPU detecteert door
chrome://gpu
te bezoeken.Het GPU-proces is meerdere keren gecrasht. U kunt de pagina opnieuw laden of Chrome opnieuw starten. Bekijk de aanbevolen procedures voor WebGPU-apparaatverlies voor meer informatie.
WebGPU is langzamer dan WebGL
Open
chrome://gpu
en controleer of u "WebGPU: Hardware accelerated" kunt lezen. Als u "WebGPU: Software only, hardware acceleration unavailable" ziet, moet u mogelijk uw GPU-drivers bijwerken.Het direct vertalen van WebGL-concepten naar WebGPU maakt mogelijk niet optimaal gebruik van de unieke optimalisaties van WebGPU. Bekijk 'Van WebGL naar WebGPU' voor meer informatie over enkele verschillen.
Windows-specifieke beperkingen
Houd rekening met de volgende beperkingen bij het gebruik van WebGPU op Windows-apparaten:
Chrome ondersteunt het gelijktijdig gebruik van meerdere GPU-adapters niet. Zie probleem chromium:329211593 .
Chrome gebruikt altijd dezelfde GPU-adapter die is toegewezen voor andere Chrome-workloads. Voor laptops is dit doorgaans de geïntegreerde grafische kaart, vanwege het energieverbruik (d.w.z. energiebesparing). Dit betekent dat de optie
powerPreference
geen invloed heeft bij het aanroepenrequestAdapter()
. U kunt het gebruik van de high-performance GPU afdwingen, indien beschikbaar, door de vlagchrome://flags/#force-high-performance-gpu
in te schakelen en Chrome opnieuw te starten.