Publié le 7 février 2024, dernière mise à jour le 17 octobre 2025
Ce document explique pourquoi WebGPU peut être inutilisable ou ne pas fonctionner comme prévu dans le navigateur Chrome, et fournit des étapes claires pour résoudre les problèmes, le cas échéant.
navigator.gpu is undefined
L'exemple suivant montre une erreur JavaScript que vous pouvez obtenir lorsque gpu n'est pas disponible dans navigator :
const adapter = await navigator.gpu.requestAdapter();
cancel Uncaught TypeError: Cannot read properties of undefined (reading 'requestAdapter')
L'une des raisons suivantes peut l'expliquer : Vérifiez-les dans cet ordre précis :
WebGPU nécessite Chrome 113 ou version ultérieure sur ChromeOS, macOS et Windows, et Chrome 121 ou version ultérieure sur Android. Vérifiez votre version sur
chrome://versionet mettez-la à jour si nécessaire.WebGPU n'est accessible qu'aux contextes sécurisés. Si vous diffusez votre code via un protocole non sécurisé (par exemple,
http:oufile:), utilisez le protocole sécuriséhttps:ou résolvez ce problème lors du développement de votre application Web de l'une des manières suivantes :Exécutez votre code en local sur
http://localhostouhttp://127.0.0.1avec l'une des commandes suivantes :npx http-serveroupython3 -m http.server.Ajoutez l'origine à la liste "Origines non sécurisées traitées comme sécurisées" de
chrome://flags/#unsafely-treat-insecure-origin-as-secure, puis redémarrez Chrome.Installez Node.js et exécutez
npx servez --sslpour diffuser votre dossier via HTTPS avec un faux certificat. Vous recevrez toujours un avertissement dans Chrome, que vous pourrez ignorer en cliquant sur "Avancé", puis sur "Accéder à…".Exposez votre serveur Web local sur Internet avec ngrok.
L'adaptateur GPU est nul
Voici un exemple d'erreur JavaScript que vous pouvez obtenir lorsque l'adaptateur que vous obtenez en appelant requestAdapter() est nul :
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
cancel Uncaught TypeError: Cannot read properties of undefined (reading requestDevice)
Cela se produit pour l'une des raisons suivantes : Vérifiez-les dans cet ordre précis :
WebGPU est désactivé lorsque l'utilisateur a désactivé l'option "Utiliser l'accélération graphique si disponible" dans
chrome://settings/system. Vérifiez si ce paramètre est désactivé et réactivez-le.WebGPU n'est pas encore compatible avec cette plate-forme. Vous pouvez activer le flag
chrome://flags/#enable-unsafe-webgpuet redémarrer Chrome. Pour la prise en charge expérimentale de Linux, vous devez également activer le flagchrome://flags/#enable-vulkan. Pour en savoir plus, consultez Prise en charge de WebGPU dans Headless Chrome.Le matériel GPU a été spécifiquement ajouté à la liste de blocage. Si le message "WebGPU a été désactivé via la liste de blocage ou la ligne de commande" s'affiche dans
chrome://gpu, vous pouvez désactiver la liste de blocage des adaptateurs WebGPU en activant le flagchrome://flags/#enable-unsafe-webgpuet en redémarrant Chrome. Vous pouvez également remplacer la liste de rendu logiciel intégrée en activant le flagchrome://flags/#ignore-gpu-blocklistet en redémarrant Chrome.Aucun adaptateur GPU ne correspond aux options transmises dans
requestAdapter(). Essayez d'appelerrequestAdapter()avec différentes options.WebGPU nécessite un GPU (matériel ou logiciel). Pour vérifier si Chrome détecte un GPU, accédez à
chrome://gpu.Le processus du GPU a planté plusieurs fois. Vous pouvez actualiser la page ou redémarrer Chrome. Pour en savoir plus, consultez les bonnes pratiques concernant la perte de l'appareil WebGPU.
WebGPU est plus lent que WebGL
Ouvrez
chrome://gpuet assurez-vous de pouvoir lire "WebGPU : accélération matérielle". Si le message "WebGPU : logiciel uniquement, accélération matérielle non disponible" s'affiche, vous devrez peut-être mettre à jour les pilotes de votre GPU.La traduction directe des concepts WebGL vers WebGPU ne permet pas d'exploiter pleinement les optimisations uniques de WebGPU. Consultez De WebGL à WebGPU pour en savoir plus sur certaines de leurs différences.
Limites spécifiques à Windows
Tenez compte des limites suivantes lorsque vous utilisez WebGPU sur des appareils Windows :
Chrome n'est pas compatible avec l'utilisation simultanée de plusieurs cartes graphiques. Consultez issue chromium:329211593.
Chrome utilise toujours la même carte graphique que celle allouée aux autres charges de travail Chrome. Pour les ordinateurs portables, il s'agit généralement de la carte graphique intégrée, en raison de la consommation d'énergie (c'est-à-dire l'économie d'énergie). Cela signifie que l'option
powerPreferencen'a aucun impact lors de l'appel derequestAdapter(). Vous pouvez forcer l'utilisation du GPU hautes performances, s'il est disponible, en activant le flagchrome://flags/#force-high-performance-gpuet en redémarrant Chrome.