Firefox se suma a la nueva generación gráfica web: WebGPU llega a Linux y otras plataformas
Mozilla ha dado un paso clave hacia el futuro del procesamiento gráfico en la web al anunciar la activación por defecto la compatibilidad con WebGPU en Firefox 141. Aunque en esta primera etapa la funcionalidad estará activa solo en sistemas Windows, la organización ya confirmó que en los meses siguientes también se activará en las versiones para Linux y macOS, y posteriormente en Android.
Para quienes no deseen esperar, es posible habilitar manualmente WebGPU modificando los parámetros dom.webgpu.enabled y gfx.webrender.all en la sección de configuración avanzada (about:config).
WebGPU: el nuevo estándar gráfico para la web moderna
WebGPU representa una revolución en la forma en que los navegadores web interactúan con la GPU. A diferencia de la veterana WebGL, esta nueva API ofrece una aproximación de más bajo nivel, comparable a lo que ofrecen Vulkan, Direct3D 12 y Metal en aplicaciones nativas. Esto significa que ahora las aplicaciones web pueden acceder a la potencia gráfica del sistema con mayor eficiencia, menos sobrecarga y un control mucho más preciso sobre los recursos y las operaciones de renderizado.
En Firefox, esta funcionalidad se implementa a través del proyecto WGPU, desarrollado en Rust, que actúa como una capa universal sobre diferentes APIs gráficas del sistema. Gracias a esta arquitectura, WebGPU puede ejecutarse sobre Direct3D 12 en Windows, Vulkan en Linux, Metal en macOS y OpenGL cuando sea necesario. Esta estrategia multiplataforma asegura que los desarrolladores puedan crear aplicaciones gráficas avanzadas en la web sin preocuparse por las particularidades de cada sistema operativo.
WebGPU permite que los proyectos JavaScript gestionen directamente la creación de recursos gráficos, la organización de comandos y la transmisión de datos hacia la GPU. Esto incluye desde sombreadores personalizados hasta estructuras de memoria como búferes de vértices y texturas, lo cual antes era una tarea más limitada y menos eficiente en WebGL. Gracias a esta nueva capacidad, las aplicaciones web pueden ofrecer experiencias visuales que antes estaban reservadas para el software nativo, incluyendo juegos 3D complejos, simulaciones científicas, modelado tridimensional y herramientas de edición gráfica en tiempo real.
Además, WebGPU no solo está pensado para gráficos. También incluye funcionalidades orientadas al cómputo en paralelo, permitiendo que muchas tareas de procesamiento intensivo se realicen directamente en la GPU. Este enfoque abre la puerta a aplicaciones como la inteligencia artificial en el navegador, el procesamiento de vídeo y la visualización de grandes volúmenes de datos, todo con un rendimiento sin precedentes para entornos web.
Diferencias clave con WebGL: flexibilidad, rendimiento y control
Una de las diferencias fundamentales entre WebGPU y WebGL radica en el modelo de gestión de recursos. WebGPU introduce un enfoque más estructurado y segmentado, donde cada parte del proceso gráfico se maneja de forma independiente. Los desarrolladores cuentan con contextos específicos como GPUDevice para la creación de recursos, GPUCommandEncoder para la codificación de comandos, y GPUCommandBuffer para la ejecución final de estos en la GPU. Esta separación favorece la eficiencia y facilita el trabajo en paralelo entre hilos.
Por otro lado, la definición de estados en WebGPU también adopta una filosofía más moderna. En lugar de depender de estados globales como en WebGL, esta nueva API permite a los desarrolladores definir combinaciones específicas a través de objetos como GPURenderPipeline y GPUComputePipeline, evitando así redundancias y recompilaciones innecesarias.
En cuanto al sistema de enlace de recursos, WebGPU se inspira directamente en la agrupación de recursos que ofrece Vulkan. Mediante el uso de estructuras como GPUBindGroup y GPUBindGroupLayout, es posible organizar el acceso a texturas, búferes y otros datos necesarios para la ejecución de sombreadores, reduciendo el tiempo de preparación entre diferentes fases de renderizado y aumentando significativamente el rendimiento general.
Con la adopción definitiva de WebGPU por parte de Firefox, se consolida un panorama en el que los tres principales navegadores (Chrome, Safari y ahora Firefox) adoptan este nuevo estándar. Chrome lo hizo en su versión 113, lanzada en mayo de 2023, y Apple ha anunciado que lo activará por defecto en Safari este otoño. La implementación de Mozilla, aunque más tardía, promete destacarse por su integración con tecnologías de código abierto como Rust y por su enfoque multiplataforma pensado desde la base.