Novidades da WebGPU (Chrome 138)

François Beaufort
François Beaufort

Publicado em: 17 de junho de 2025

Abreviação para usar o buffer como um recurso de vinculação.

Agora, os desenvolvedores podem usar um GPUBuffer diretamente como um GPUBindingResource para expor ao shader para vinculação. Isso o torna consistente com outros tipos de vinculação e ainda mais simples de usar do que um GPUBufferBinding quando o tamanho e o deslocamento usam valores padrão. Consulte o problema 419223794.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTextureView },
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
    { binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
  ],
});

Mudanças nos requisitos de tamanho para buffers mapeados na criação

Criar um buffer com mappedAtCreation definido como "true" agora gera um RangeError se size não for um múltiplo de 4. Antes, isso era aplicado apenas com um GPUValidationError. Consulte o problema 405883445.

myDevice.createBuffer({
  mappedAtCreation: true,
  size: 42,
  usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError

Relatório de arquitetura para GPUs recentes

As GPUs mais recentes da Nvidia e da AMD agora informam a arquitetura em GPUAdapterInfo como "blackwell" e "rdna4", respectivamente, além de algumas outras pequenas adições às listas de arquitetura de GPU. Consulte o problema 417202748.

Descontinuação do atributo isFallbackAdapter do GPUAdapter

O atributo isFallbackAdapter do GPUAdapter foi descontinuado. Ele foi substituído pelo atributo isFallbackAdapter do GPUAdapterInfo, introduzido no Chrome 136. Consulte intenção de descontinuar.

Atualizações do amanhecer

O Emscripten é compatível com o Dawn GLFW para builds do CMake, permitindo que os desenvolvedores simplifiquem ainda mais o código do app multiplataforma WebGPU ao usar o Emdawnwebgpu, que implementa o mais recente webgpu.h padronizado na API do navegador. Consulte change dawn:242894.

Para um guia completo, confira a documentação atualizada Criar um app com WebGPU.

Uma porta "remota" do Emdawnwebgpu agora está incluída nas versões de pacotes. Um snapshot dessa porta está incluído no Emscripten 4.0.10 ou mais recente, que agora oferece suporte a portas hospedadas externamente. Mudar para Emdawnwebgpu agora é uma única mudança de flag de emcc -sUSE_WEBGPU para emcc --use-port=emdawnwebgpu. Consulte Emscripten PR #24303, #24220 e Dawn CL 243214.

Isso abrange apenas alguns dos principais destaques. Confira a lista completa de commits.

Novidades no WebGPU

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

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

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