Novidades da WebGPU (Chrome'113)

François Beaufort
François Beaufort

Após anos de desenvolvimento, a equipe do Chrome anuncia que a primeira versão da WebGPU agora está disponível por padrão no Chrome para ChromeOS, macOS e Windows. Confira O Chrome envia a WebGPU para saber mais.

Também começamos a adicionar uma documentação abrangente para a WebGPU no MDN.

E tem mais.

Usar a origem VideoFrame do WebCodecs em importExternalTexture()

A WebGPU expõe uma API para criar objetos de "textura externa" opacos de HTMLVideoElement a importExternalTexture(). Você pode usar esses objetos para extrair uma amostra dos quadros do vídeo de maneira eficiente, possivelmente de maneira não conversível, diretamente dos dados YUV de origem.

No entanto, a especificação inicial da WebGPU não permite a criação de objetos GPUExternalTexture a partir de objetos VideoFrame do WebCodecs. Esse recurso é importante para aplicativos avançados de processamento de vídeo que já usam o WebCodecs e gostariam de integrar a WebGPU ao pipeline de processamento de vídeo. No momento, a discussão está acontecendo no problema gpuweb/gpuweb#1380.

Ativar o recurso

Por padrão, esse recurso não está ativado no Chrome, mas pode ser testado no Chrome 113, basta ativar explicitamente a funcionalidade. É possível ativá-la localmente ativando a sinalização "Recursos do desenvolvedor da WebGPU" em chrome://flags/#enable-webgpu-developer-features.

O teste de origem está sendo ativado para todos os visitantes do app e vai terminar no Chrome 118 (8 de dezembro de 2023). Para participar do teste, inscreva-se e inclua um elemento meta com o token do teste de origem no cabeçalho HTML ou HTTP. Para saber mais, consulte a postagem Introdução aos testes de origem.

Exemplo de código

// 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.

Confira o exemplo experimental Upload de vídeo com o WebCodecs para brincar.

Novidades da WebGPU

Uma lista de tudo o que foi abordado na série O que há de novo na WebGPU.

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Google Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Google Chrome 113