Pubblicato: 7 febbraio 2024, ultimo aggiornamento: 17 ottobre 2025
Questo documento spiega perché WebGPU potrebbe non funzionare o non funzionare come previsto nel browser Chrome, con passaggi chiari per risolvere i problemi, ove possibile.
navigator.gpu is undefined
L'esempio seguente mostra un errore JavaScript che potresti ricevere quando gpu non è disponibile in navigator:
const adapter = await navigator.gpu.requestAdapter();
cancel Uncaught TypeError: Cannot read properties of undefined (reading 'requestAdapter')
Ciò potrebbe essere dovuto a uno dei seguenti motivi. Controlla quelli in questo ordine specifico:
WebGPU richiede Chrome 113 o versioni successive su ChromeOS, macOS, Windows e Chrome 121 o versioni successive su Android. Controlla la tua versione all'indirizzo
chrome://versione, se necessario, aggiornala.WebGPU è accessibile solo ai contesti sicuri. Se pubblichi il codice tramite un protocollo non sicuro (ad esempio
http:,file:), utilizza il protocollo sicurohttps:o risolvi il problema durante lo sviluppo della tua app web in uno dei seguenti modi:Pubblica il codice localmente su
http://localhostohttp://127.0.0.1con uno di questi comandi:npx http-serveropython3 -m http.server.Aggiungi l'origine all'elenco "Origini non sicure trattate come sicure" di
chrome://flags/#unsafely-treat-insecure-origin-as-securee riavvia Chrome.Installa Node.js ed esegui
npx servez --sslper pubblicare la cartella tramite HTTPS con un certificato falso. In Chrome continuerai a ricevere un avviso che puoi ignorare facendo clic su "Avanzate" e poi su "Procedi a…".Esporre il server web locale a internet con ngrok.
L'adattatore GPU è nullo
Di seguito è riportato un esempio di errore JavaScript che potresti ricevere quando l'adattatore ottenuto chiamando requestAdapter() è nullo:
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
cancel Uncaught TypeError: Cannot read properties of undefined (reading requestDevice)
Ciò si verifica per uno dei seguenti motivi. Controlla quelli in questo ordine specifico:
WebGPU è disattivato quando l'utente ha disattivato l'opzione "Usa accelerazione grafica quando disponibile" in
chrome://settings/system. Controlla se questa impostazione è disattivata e riattivalaWebGPU non è ancora supportato su questa piattaforma. Puoi attivare il flag
chrome://flags/#enable-unsafe-webgpue riavviare Chrome. Per il supporto sperimentale di Linux, devi anche attivare il flagchrome://flags/#enable-vulkan. Per saperne di più, consulta Supporto di WebGPU in Chrome headless.L'hardware della GPU è stato inserito in una lista bloccata specifica. Se in
chrome://gpuviene visualizzato il messaggio "WebGPU è stato disattivato tramite la blocklist o la riga di comando", puoi disattivare la blocklist degli adattatori WebGPU attivando il flagchrome://flags/#enable-unsafe-webgpue riavviando Chrome. Puoi anche ignorare l'elenco di rendering software integrato attivando il flagchrome://flags/#ignore-gpu-blockliste riavviando Chrome.Non esiste una scheda GPU corrispondente per le opzioni trasmesse in
requestAdapter(). Prova a chiamarerequestAdapter()con opzioni diverse.WebGPU richiede una GPU (hardware o emulata via software). Puoi verificare se Chrome rileva una GPU visitando la pagina
chrome://gpu.Il processo della GPU ha subito arresti anomali più volte. Puoi ricaricare la pagina o riavviare Chrome. Per saperne di più, consulta le best practice per la perdita del dispositivo WebGPU.
WebGPU è più lento di WebGL
Apri
chrome://gpue assicurati di poter leggere "WebGPU: accelerazione hardware". Se leggi "WebGPU: solo software, accelerazione hardware non disponibile", potresti dover aggiornare i driver della GPU.La traduzione diretta dei concetti di WebGL in WebGPU potrebbe non sfruttare appieno le ottimizzazioni uniche di WebGPU. Consulta l'articolo Da WebGL a WebGPU per scoprire alcune delle loro differenze.
Limitazioni specifiche di Windows
Tieni presente le seguenti limitazioni quando utilizzi WebGPU sui dispositivi Windows:
Chrome non supporta l'utilizzo simultaneo di più schede GPU. Vedi issue chromium:329211593.
Chrome utilizza sempre lo stesso adattatore GPU allocato per altri workload di Chrome, che per i laptop è generalmente la scheda grafica integrata, a causa dell'aspetto del consumo energetico (ad es. risparmio energetico). Ciò significa che l'opzione
powerPreferencenon ha alcun impatto quando si chiamarequestAdapter(). Se disponibile, puoi forzare l'utilizzo della GPU ad alte prestazioni attivando il flagchrome://flags/#force-high-performance-gpue riavviando Chrome.