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

Os desenvolvedores agora podem usar um GPUBuffer diretamente como um GPUBindingResource para expor ao sombreador 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

A criação de um buffer com mappedAtCreation definido como verdadeiro agora gera um RangeError se size não for um múltiplo de 4. Anteriormente, 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 no 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 GPUAdapter isFallbackAdapter

O atributo isFallbackAdapter do GPUAdapter foi descontinuado. Ele foi substituído pelo atributo isFallbackAdapter do GPUAdapterInfo, que foi introduzido no Chrome 136. Consulte a 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 do app multiplataforma WebGPU ao usar o Emdawnwebgpu, que implementa o webgpu.h padronizado mais recente na API do navegador. Consulte a mudança dawn:242894.

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

Uma porta "remota" do 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 o Emdawnwebgpu agora é uma única mudança de flag de emcc -sUSE_WEBGPU para emcc --use-port=emdawnwebgpu. Consulte o PR do Emscripten nº 24303, nº 24220 e o CL do Dawn 243214.

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

Novidades no WebGPU

Uma lista de tudo o que foi abordado na série Novidades no WebGPU.

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

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