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 objetos opacos de "textura externa" desde HTMLVideoElement hasta importExternalTexture(). Puedes usar estos objetos para tomar muestras de los fotogramas de video de forma eficiente, posiblemente en una forma de copia cero 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, el debate se lleva a cabo en el problema gpuweb/gpuweb#1380.

Habilita la función

De forma predeterminada, esta función no está habilitada en Chrome, pero se puede experimentar en Chrome 113 si se habilita explícitamente la función. Puedes activarla localmente habilitando la marca "Funciones de desarrollador de WebGPU" en chrome://flags/#enable-webgpu-developer-features.

Para habilitarla para todos los visitantes de tu app, hay una prueba de origen en curso que finalizará en Chrome 118 (8 de diciembre de 2023). Para participar, regístrate y, luego, 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.

Para probar la muestra experimental Cómo subir videos con WebCodecs, pruébalo.

Novedades de WebGPU

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

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113