Novedades de WebGPU (Chrome 113)

François Beaufort
François Beaufort

Después de años de desarrollo, el equipo de Chrome anuncia que la primera versión de WebGPU ya está disponible de forma predeterminada en Chrome para ChromeOS, macOS y Windows. Consulta Chrome envía WebGPU para obtener más información.

También comenzamos a agregar documentación completa para WebGPU en MDN.

Y eso no es todo.

Usa la fuente VideoFrame de WebCodecs en importExternalTexture()

WebGPU expone una API para crear una “textura externa” opaca objetos desde HTMLVideoElement hasta importExternalTexture(). Puedes usar estos objetos para muestrear los fotogramas de video de manera eficiente, posiblemente de una forma de 0 copias directamente desde los datos YUV de origen.

Sin embargo, la especificación inicial de WebGPU no permite crear objetos GPUExternalTexture a partir de objetos VideoFrame de WebCodecs. Esta capacidad es importante para las apps de procesamiento de video avanzado que ya usan WebCodecs y desean integrar WebGPU en la canalización de procesamiento de video. Actualmente, el debate tiene lugar en el problema gpuweb/gpuweb#1380.

Habilitar la función

De forma predeterminada, esta función no está habilitada en Chrome, pero se puede probar en Chrome 113 si habilitas la funcionalidad de forma explícita. Puedes activarla localmente habilitando las “Funciones para desarrolladores de WebGPU” flag en chrome://flags/#enable-webgpu-developer-features.

Para habilitarla para todos los visitantes de la app, hay una prueba de origen en curso que finalizará en Chrome 118 (8 de diciembre de 2023). Para participar en la prueba, regístrate e incluye un metaelemento con el token de prueba de origen en el encabezado HTML o HTTP. Para obtener más información, consulta la publicación Comienza a usar las pruebas de origen.

Código de muestra

// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);

const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.

Consulta la muestra experimental Cómo subir videos con WebCodecs para probarla.

Novedades de WebGPU

Una lista de todo lo que se ha abordado en la serie Novedades de WebGPU.

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113