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 já está disponível por padrão no Chrome no ChromeOS, macOS e Windows. Confira O Chrome envia WebGPU para saber mais.

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

E tem mais.

Usar a origem VideoFrame do WebCodecs em importExternalTexture()

A WebGPU expõe uma API para criar objetos opacos de "textura externa" de HTMLVideoElement a importExternalTexture(). É possível usar esses objetos para amostrar os frames de vídeo de maneira eficiente, possivelmente sem cópias, 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 apps avançados de processamento de vídeo que já usam WebCodecs e gostariam de integrar o WebGPU no pipeline de processamento de vídeo. 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 ativando explicitamente a funcionalidade. Ative-o localmente ativando a sinalização "Recursos para desenvolvedores WebGPU" em chrome://flags/#enable-webgpu-developer-features.

Para ativar esse recurso para todos os visitantes do app, um teste de origem está em andamento e será encerrado no Chrome 118 (8 de dezembro de 2023). Para participar do teste, inscreva-se e inclua um metaelemento com o token do teste de origem no cabeçalho HTML ou HTTP. Para mais informações, consulte a postagem Começar a usar os testes de origem.

Código de amostra

// 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 Envio de vídeo com WebCodecs para testar.

Novidades na WebGPU

Uma lista de tudo o que foi abordado na série O que há de novo na 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