Novidades da WebGPU (Chrome 138)

François Beaufort
François Beaufort

Publicado em 17 de junho de 2025

Abreviatura para usar o buffer como um recurso de vinculação

Os desenvolvedores agora podem usar um GPUBuffer diretamente como um GPUBindingResource para expor ao sombreador para vinculação. Isso torna o processo consistente com outros tipos de vinculação e até mais simples de usar do que uma 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 no requisito de tamanho para buffers mapeados na criação

A criação de um buffer com mappedAtCreation definido como verdadeiro agora gera uma RangeError se size não for um múltiplo de 4. Anteriormente, isso era aplicado apenas com uma 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 adições menores às listagens de arquitetura de GPU. Consulte o problema 417202748.

O atributo isFallbackAdapter do GPUAdapter foi descontinuado

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

Atualizações do Dawn

O Emscripten tem suporte no Dawn GLFW para builds do CMake, permitindo que os desenvolvedores simplifiquem ainda mais o código de apps multiplataforma da WebGPU ao usar o Emdawnwebgpu, que implementa o webgpu.h padronizado mais recente na API do navegador. Consulte change dawn:242894.

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

Uma porta "remota" da Emdawnwebgpu agora está incluída nas versões de pacote. Um snapshot dessa porta está incluído no Emscripten 4.0.10+, que agora oferece suporte a portas hospedadas externamente. A mudança para Emdawnwebgpu agora é uma única alteração 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 confirmações.

Novidades na WebGPU

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

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