Año iniciado | 18 de mayo de 2021 ( 18/05/2021 ) |
---|---|
Primera publicación | 18 de mayo de 2021 ( 18/05/2021 ) |
Última versión | Borrador de trabajo del W3C (a partir de 2023) ( (A partir de 2023) ) |
Organización | W3C |
Comité |
|
Editores |
|
Normas relacionadas | |
Dominio | |
Sitio web | www.w3.org/TR/webgpu/ |
WebGPU es una API de JavaScript proporcionada por un navegador web que permite que los scripts de páginas web utilicen de manera eficiente la unidad de procesamiento gráfico (GPU) de un dispositivo. Esto se logra con las API de sistema subyacentes Vulkan , Metal o Direct3D 12. En los dispositivos relevantes, WebGPU está destinado a reemplazar el estándar WebGL anterior. [1]
Google Chrome habilitó el soporte inicial de WebGPU en abril de 2023. [1] [2] Safari y Firefox aún no lo han habilitado. [2] Por lo tanto, el estándar W3C se encuentra en la fase de borrador de trabajo.
WebGPU permite gráficos 3D dentro de un lienzo HTML . También tiene un soporte sólido para cálculos de GPU de propósito general . [3]
WebGPU utiliza su propio lenguaje de sombreado llamado WGSL , que fue diseñado para ser fácilmente traducible a SPIR-V , hasta que las quejas provocaron una redirección a un diseño más tradicional, similar a otros lenguajes de sombreado. La sintaxis es similar a la de Rust . [4] Tint es un compilador creado por Google para WGSL. [5] Naga es un proyecto similar desarrollado para las necesidades de wgpu-rs. [6]
Tanto Google Chrome como Firefox son compatibles con WebGPU con SPIR-V, y se está trabajando en el frontend WGSL. Firefox y Deno utilizan la biblioteca wgpu de Rust. [7] Safari sigue las especificaciones originales de WebGPU y WGSL. [2]
La versión 113 de Chrome habilitó la compatibilidad inicial con WebGPU en dispositivos Windows con Direct3D 12 , dispositivos ChromeOS con Vulkan y macOS con Metal . [1] Esta compatibilidad con Android se habilitó en la versión 121. [2]
El 8 de junio de 2016, Google presentó la "API de gráficos web explícitos" al grupo de trabajo de WebGL (durante la reunión presencial bianual). [8] La presentación exploró las ideas y los principios básicos de la creación de una nueva API que eventualmente reemplazaría a WebGL, también conocida como "WebGL Next".
El 24 de enero de 2017, Khronos organizó una reunión sin IP dedicada a discutir las ideas de "WebGL Next", que coincidió con la reunión del grupo de trabajo de WebGL en Vancouver. [9] El equipo de Google presentó el prototipo NXT que implementaba una nueva API que podía ejecutarse en Chromium con OpenGL, o de forma independiente con OpenGL y Metal. NXT tomó prestados conceptos de todas las API nativas de Vulkan, Direct3D 12 y Metal. Los representantes de Apple y Mozilla también mostraron sus prototipos creados en Safari y Servo , respectivamente, los cuales replicaban de manera cercana la API de Metal.
El 7 de febrero de 2017, el equipo WebKit de Apple propuso la creación del grupo comunitario W3C para diseñar la API. Al mismo tiempo, anunciaron una prueba técnica de concepto y una propuesta bajo el nombre "WebGPU", basada en conceptos de Metal de Apple . [10] [11] [12] El nombre WebGPU fue adoptado posteriormente por el grupo comunitario como un nombre de trabajo para el futuro estándar en lugar de simplemente la propuesta inicial de Apple. [13] La propuesta inicial ha sido renombrada como "WebMetal" para evitar más confusiones. [14]
El grupo comunitario "GPU para la Web" del W3C se lanzó el 16 de febrero de 2017. En ese momento, Apple, Google y Mozilla tenían experimentos en el área, pero solo la propuesta de Apple se envió oficialmente al repositorio "gpuweb-proposals". [15] [16] [17] Poco después, el 21 de marzo de 2017, Mozilla envió una propuesta para WebGL Next dentro del repositorio Khronos, basada en el diseño de Vulkan. [18] [19]
El 1 de junio de 2018, citando "la resolución de problemas de más alto nivel" en el esfuerzo de estandarización entre navegadores, el equipo Chrome de Google anunció la intención de implementar el futuro estándar WebGPU. [13]