WebGPU es el nombre provisional del próximo estándar web y la API de JavaScript para gráficos y computación acelerados por hardware , con el objetivo de proporcionar "las últimas capacidades de computación y gráficos en 3D". Desarrollado por la GPU W3C para la Web por un equipo de ingenieros de Apple , Mozilla , Microsoft , Google y más. [una]
A diferencia de WebGL , WebGPU no es un puerto directo de ninguna API nativa existente. Se basa en las API proporcionadas por Vulkan , Metal y Direct3D 12 y está diseñado para proporcionar un alto rendimiento en plataformas móviles y de escritorio. [2] Las plataformas móviles estarán limitadas a la hora de crear objetos WebGPUDeviceque requieran API de gráficos modernos (mencionados anteriormente). [nota 1]
El primer prototipo conceptual llamado NXT fue demostrado a principios de 2017 por el equipo de Chromium .
El equipo de desarrollo de Google Chrome lo llamó el "sucesor" de las API de JavaScript WebGL /2 . [3]
El 8 de junio de 2016, Google presentó la presentación "API de gráficos web explícitos" al grupo de trabajo de WebGL (durante una reunión presencial bianual). [4] La presentación cubrió las ideas y principios básicos detrás de la creación de una nueva API que eventualmente reemplazará a WebGL, también conocida como "WebGL Next".
El 24 de enero de 2017, Khronos organizó una reunión de "WebGL Next Ideas" que coincidió con la reunión del Grupo de trabajo de WebGL en Vancouver. [5] El equipo de Google ha presentado un prototipo de NXT que implementa una nueva API que puede ejecutarse en Chromium con OpenGL o de forma independiente con OpenGL y Metal. NXT tomó prestados conceptos de todas las API de Vulkan, Direct3D 12 y Metal. Los representantes de Apple y Mozilla también mostraron sus prototipos, construidos en Safari y Servo, respectivamente, los cuales copian completamente la API de Metal.
El 7 de febrero de 2017, el equipo de Apple WebKit propuso la creación de un grupo comunitario W3C para desarrollar la API. Al mismo tiempo, anunciaron una prueba técnica de concepto y una propuesta llamada "WebGPU" basada en los conceptos de Apple Metal . [6] [7] [8] El nombre WebGPU fue adoptado más tarde por el grupo de la comunidad como un nombre de trabajo para un estándar futuro en lugar de solo la propuesta original de Apple. [2] La propuesta original ha sido renombrada como "WebMetal" para evitar más confusiones. [9]
El grupo de la comunidad W3C "GPU para la Web" se lanzó el 16 de febrero de 2017. En ese momento, todo Apple, Google y Mozilla estaban experimentando en esta área, pero solo la propuesta de Apple se envió oficialmente al repositorio "gpuweb-offers". [10] [11] [12] Poco después, el 21 de marzo de 2017, Mozilla envió una propuesta de WebGL Next al repositorio de Khronos basada en el diseño de Vulkan. [13] [14]
El 1 de junio de 2018, el equipo de Google Chrome anunció su intención de implementar un futuro estándar WebGPU, citando "resolver los problemas más importantes" como parte de la estandarización entre navegadores. [2]
WebGPU usa su propio lenguaje de sombreado llamado WGSL, que se traduce fácilmente a SPIR-V . [15] Esta elección es un compromiso entre tres ofertas: WebMetal basado en texto de Apple, Web HLSL /WSL basado en texto de Apple Safari y SPIR-V binario de Mozilla. Tint es un compilador WGSL creado por Google.
Tanto Chrome como Firefox admiten WebGPU a través de SPIR-V, mientras continúa el trabajo en la interfaz WGSL. Safari es compatible con WebGPU con WSL. [dieciséis]