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 ahora está disponible de forma predeterminada en Chrome en ChromeOS, macOS y Windows. Consulta Chrome envía WebGPU para obtener más información.

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

Y eso no es todo.

Usa la fuente VideoFrame de WebCodecs en importExternalTexture()

WebGPU expone una API para crear objetos opacos de "textura externa" desde HTMLVideoElement a través de importExternalTexture(). Puedes usar estos objetos para muestrear los fotogramas de video de manera eficiente, posiblemente sin 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 función es importante para las apps de procesamiento de video avanzadas que ya usan WebCodecs y desean integrar WebGPU en la canalización de procesamiento de video. Actualmente, se está realizando un debate sobre el problema gpuweb/gpuweb#1380.

Habilita la función

De forma predeterminada, esta función no está habilitada en Chrome, pero se puede experimentar con ella en Chrome 113 si se habilita explícitamente la funcionalidad. Para activarlo de forma local, habilita la marca "WebGPU Developer Features" en chrome://flags/#enable-webgpu-developer-features.

Para habilitarlo para todos los visitantes de tu app, actualmente se está realizando una prueba de origen que finalizará en Chrome 118 (8 de diciembre de 2023). Para participar en la prueba, regístrate y, luego, incluye un elemento meta 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 de carga de videos con WebCodecs para probarla.

Novedades de WebGPU

Una lista de todo lo que se analizó en la serie Novedades de WebGPU.

Chrome 131

Chrome 130

Chrome 129

Chrome 128

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