Fecha de publicación: 7 de febrero de 2024; última actualización: 17 de octubre de 2025
En este documento, se explica por qué es posible que WebGPU no funcione o no funcione como se espera en el navegador Chrome, y se proporcionan pasos claros para resolver los problemas cuando sea posible.
navigator.gpu no está definido
En el siguiente ejemplo, se muestra un error de JavaScript que puedes recibir cuando gpu
no está disponible en navigator
:
const adapter = await navigator.gpu.requestAdapter();
cancel Uncaught TypeError: Cannot read properties of undefined (reading 'requestAdapter')
Esto puede deberse a uno de los siguientes motivos: Verifica los que se encuentran en este orden específico:
WebGPU requiere Chrome 113 o una versión posterior en ChromeOS, macOS y Windows, y Chrome 121 o una versión posterior en Android. Verifica tu versión en
chrome://version
y actualízala si es necesario.WebGPU solo es accesible para contextos seguros. Si publicas tu código a través de un protocolo no seguro (por ejemplo,
http:
ofile:
), usa el protocolo segurohttps:
o aborda este problema durante el desarrollo de tu app web de una de las siguientes maneras:Publica tu código de forma local en
http://localhost
ohttp://127.0.0.1
con cualquiera de estos comandos:npx http-server
opython3 -m http.server
.Agrega el origen a la lista "Orígenes no seguros tratados como seguros" de
chrome://flags/#unsafely-treat-insecure-origin-as-secure
y reinicia Chrome.Instala Node.js y ejecuta
npx servez --ssl
para entregar tu carpeta a través de HTTPS con un certificado falso. Aun así, recibirás una advertencia en Chrome que puedes omitir haciendo clic en "Avanzado" y, luego, en "Ir a…".Expón tu servidor web local a Internet con ngrok.
El adaptador de GPU es nulo
A continuación, se muestra un ejemplo de un error de JavaScript que puedes recibir cuando el adaptador que obtienes al llamar a requestAdapter()
es nulo:
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
cancel Uncaught TypeError: Cannot read properties of undefined (reading requestDevice)
Esto sucede por uno de los siguientes motivos. Verifica los que se encuentran en este orden específico:
WebGPU se inhabilita cuando el usuario desactiva “Usar la aceleración de gráficos cuando esté disponible” en
chrome://settings/system
. Comprueba si este parámetro de configuración está desactivado y vuelve a activarlo.WebGPU aún no es compatible con esta plataforma. Puedes habilitar la marca
chrome://flags/#enable-unsafe-webgpu
y reiniciar Chrome. Para la compatibilidad experimental con Linux, también deberás habilitar la marcachrome://flags/#enable-vulkan
. Consulta Compatibilidad con WebGPU en Headless Chrome para obtener más información.El hardware de la GPU se agregó específicamente a la lista de bloqueo. Si ves el mensaje "WebGPU has been disabled via blocklist or the command line" en
chrome://gpu
, puedes inhabilitar la lista de bloqueo de adaptadores de WebGPU habilitando la función experimentalchrome://flags/#enable-unsafe-webgpu
y reiniciando Chrome. También puedes anular la lista de renderización de software integrada habilitando la marcachrome://flags/#ignore-gpu-blocklist
y reiniciando Chrome.No hay un adaptador de GPU que coincida con las opciones que se pasaron en
requestAdapter()
. Intenta llamar arequestAdapter()
con diferentes opciones.WebGPU requiere una GPU (ya sea de hardware o emulada por software). Para verificar si Chrome detecta una GPU, visita
chrome://gpu
.El proceso de la GPU falló varias veces. Puedes volver a cargar la página o reiniciar Chrome. Consulta las prácticas recomendadas para la pérdida del dispositivo WebGPU para obtener más información.
WebGPU es más lento que WebGL
Abre
chrome://gpu
y asegúrate de poder leer "WebGPU: Hardware accelerated". Si ves el mensaje "WebGPU: Software only, hardware acceleration unavailable", es posible que debas actualizar los controladores de la GPU.Traducir directamente los conceptos de WebGL a WebGPU podría no aprovechar al máximo las optimizaciones únicas de WebGPU. Consulta De WebGL a WebGPU para obtener información sobre algunas de sus diferencias.
Limitaciones específicas de Windows
Ten en cuenta las siguientes limitaciones cuando uses WebGPU en dispositivos Windows:
Chrome no admite el uso de varios adaptadores de GPU de forma simultánea. Consulta el problema chromium:329211593.
Chrome siempre usa el mismo adaptador de GPU que se asignó para otras cargas de trabajo de Chrome, que, en el caso de las laptops, suele ser la tarjeta gráfica integrada, debido al aspecto del uso de energía (es decir, el ahorro de energía). Esto significa que la opción
powerPreference
no tiene ningún impacto cuando se llama arequestAdapter()
. Puedes forzar el uso de la GPU de alto rendimiento si está disponible. Para ello, habilita la marcachrome://flags/#force-high-performance-gpu
y reinicia Chrome.