Chrome 113 activa WebGPU, una API de gráficos moderna y de bajo costo para la web.
Google anunció hoy que habilitará la compatibilidad con WebGPU en su navegador Chrome predeterminado a partir de la versión 113, que actualmente se encuentra en versión beta. WebGPU, en desarrollo desde 2017, es una API de gráficos de próxima generación que tiene como objetivo aprovechar las API de bajo costo como Microsoft Direct3D 12, Apple Metal y Vulkan en navegadores web y otras aplicaciones.
La compatibilidad con WebGPU ha estado disponible durante algún tiempo, pero está deshabilitada de forma predeterminada en Chrome porque la API no se ha finalizado y las cosas podrían fallar de una actualización a otra. Google dice que tanto Mozilla como Apple eventualmente admitirán WebGPU en Firefox y Safari, y los navegadores como Microsoft Edge y Opera que dependen del motor del navegador Chromium posiblemente podrían habilitarlo, como lo hizo Google.
Para empezar, Chrome 113 es compatible con WebGPU en Windows, macOS y ChromeOS, mientras que «la compatibilidad con otras plataformas» como Linux y Android «llegará más adelante este año». Esta versión del navegador debería estar disponible para todos los usuarios de Chrome en algún momento de mayo.
La compatibilidad con Chrome es un gran paso adelante para cualquier nuevo estándar, ya sea una API nueva o actualizada, un formato de imagen o un códec de video. Según StatCounter, Chrome en sí mismo representa aproximadamente dos tercios de la cuota de mercado de navegadores en todo el mundo y casi el 80 por ciento de la cuota de mercado total de navegadores si se cuentan otros navegadores basados en Chromium. Una vez que Safari y Firefox agreguen compatibilidad, prácticamente todos los navegadores web del mundo podrán ejecutar código WebGPU, por lo que vale la pena explicar brevemente qué es WebGPU y por qué existe.
¿Qué es la GPU Web?
WebGPU es una especie de sucesor de WebGL , una API mucho más antigua que le permite mostrar gráficos basados en OpenGL en su navegador sin necesidad de complementos adicionales de terceros como Adobe Flash. Si bien WebGL fue revolucionario cuando se anunció en 2009, hoy sufre muchos de los mismos problemas que OpenGL: no aprovecha al máximo las GPU modernas, puede perder rendimiento debido a la sobrecarga del controlador y solo tiene oportunidades limitadas. y soporte torpe para cargas de cómputo de GPU.
“Si bien WebGL está diseñado principalmente para dibujar imágenes, pero se puede reutilizar (con más esfuerzo) para realizar otros tipos de cómputo, WebGPU tiene un soporte de primer nivel para realizar cómputo general en la GPU”, se lee en un borrador del documento que explica por qué existe WebGPU . . La nueva API mejorará los gráficos en entornos como Babylon.js y motores de juegos como Unity; admitirá cargas de trabajo aceleradas por GPU como las que se utilizan para el aprendizaje automático y la inteligencia artificial; y puede facilitar que las aplicaciones web de fotos y videos (entre otras) aprovechen la aceleración de GPU de la que se benefician las aplicaciones nativas.
WebGPU está siendo desarrollado por un grupo de trabajo que incluye representantes de Google, Microsoft, Apple, Mozilla, Intel y muchas otras empresas y, como resultado, la API ha sido diseñada para ser lo más compatible posible. WebGPU no es una implementación directa de ninguna API de gráficos existente, pero es una API nativa que interactúa con Direct3D 12, Metal y Vulkan. Este explicador de Surma, un ingeniero de Shopify y ex empleado de Google, lo resume muy bien (nuestro énfasis):
“Si bien WebGL es solo una envoltura delgada alrededor de OpenGL, WebGPU ha adoptado un enfoque diferente. Introduce sus propias abstracciones y no refleja directamente ninguna de estas API nativas. Esto se debe en parte a que no hay una sola API disponible en todos los sistemas, pero también a que muchos conceptos (como la administración de memoria de nivel extremadamente bajo) no son idiomáticos para la API web. En cambio, la WebGPU fue diseñada para sentirse «como una web» y colocarse convenientemente sobre cualquiera de las API gráficas nativas, abstrayendo sus idiosincrasias. Está estandarizado en el W3C y todos los principales proveedores de navegadores están sentados alrededor de la mesa».
Esto tiene la ventaja de que el código WebGPU se vuelve muy portátil: escriba el código WebGPU y, siempre que los usuarios tengan hardware y un navegador que lo admita, debería obtener el mismo resultado en un sistema Windows con Direct3D y en un teléfono Android con Vulkan. Y evita algunos de los trucos que hacen que WebGL siga funcionando; por ejemplo, WebGL en Windows y macOS ni siquiera usa OpenGL directamente, sino que usa un traductor llamado ANGLE, que convierte las llamadas a la API de OpenGL en Direct3D y llamadas a la API de Metal . Con WebGPU, no es necesario iniciar un proyecto completamente separado para escribir una implementación de OpenGL lenta o mal mantenida.
WebGPU también tiene su propio lenguaje de sombreado (WGSL), que el equipo de Chrome todavía está trabajando para admitir; el anuncio de hoy dice que Google «planea proporcionar un acceso más profundo a los núcleos de sombreado» a través de WGSL en una versión futura. Al igual que el resto de la API de WebGPU, WGSL es independiente de la plataforma y se traduce fácilmente al lenguaje de sombreado preferido de cualquier sistema operativo en el que lo use.
Finalmente, a pesar de la palabra «red» en el nombre, la API WebGPU no se limita a los navegadores. El proyecto wgpu es la versión de Rust de WebGPU que le permite escribir aplicaciones WebGPU y ejecutarlas fuera de los navegadores web.
Si quieres experimentar con WebGPU ahora, Chrome 113 beta está disponible aquí . Un repositorio de GitHub con ejemplos de código está disponible aquí , y hay documentación oficial tanto para WebGPU como para WGSL .
Deja una respuesta