Novidades do WebGPU (Chrome 141)

François Beaufort
François Beaufort

Publicado em 24 de setembro de 2025

Tint IR concluído

Um projeto de longa duração (mais de 2,5 anos) para aumentar a performance das partes internas do Tint, o compilador WGSL, foi concluído. Uma representação intermediária (IR) foi inserida no back-end entre a árvore de sintaxe abstrata (AST) atual e os geradores de código de back-end. A introdução da IR permitiu que a equipe do Chrome removesse todas as transformações da AST e as recriasse como transformações de IR que, devido a diferenças arquitetônicas, são substancialmente mais rápidas. As partes internas do Tint, em algumas plataformas, tiveram uma melhoria de velocidade de até sete vezes com essas mudanças.

Essa nova IR libera um potencial significativo para análise e transformação de sombreadores sofisticados e em grande escala, prometendo não apenas ganhos de performance notáveis, mas também um caminho mais suave para o Chrome oferecer novos recursos interessantes da WebGPU no futuro.

A partir desse marco, todos os geradores de código de back-end funcionam com a representação de IR, todas as transformações de AST foram excluídas e todo o código de suporte de AST para executar as transformações foi removido.

Como parte do trabalho de melhoria da IR, o front-end SPIR-V (usado por aplicativos para converter SPIR-V em WGSL) foi convertido da geração de uma representação de AST para a geração direta para IR. Essa melhoria também introduz recursos aguardados, como o suporte a ponto flutuante de 16 bits no front-end SPIR-V.

Análise de intervalo de números inteiros no compilador WGSL

A equipe do Chrome está lançando progressivamente uma nova análise de intervalo de números inteiros para o Tint, o compilador de linguagem de sombreador da WebGPU. A análise de intervalo de números inteiros estima os valores mínimo e máximo que uma variável inteira pode assumir durante a execução do programa sem realmente executar o programa.

Esse recurso tem como objetivo melhorar a eficiência, reduzindo a necessidade de verificações de limites caras, e será ativado por padrão em todas as plataformas. Consulte o problema 348701956.

Atualização do SPIR-V 1.4 para o back-end do Vulkan

O suporte ao SPIR-V 1.4 é lançado quando disponível em dispositivos Android e ChromeOS. Essa atualização permite que o Tint, o compilador WGSL, aproveite novos recursos, relaxamentos e novas instruções do SPIR-V para uma geração de código mais eficiente em determinados cenários ao compilar sombreadores Vulkan. Consulte o problema 427717267.

Atualizações do Dawn

O cabeçalho webgpu.h padronizado, que define a API C principal da WebGPU, agora é considerado estável. Essa estabilidade se aplica especificamente à API principal definida a montante, sem incluir extensões de implementação (por exemplo, do Dawn ou Emdawnwebgpu). Portanto, é recomendável usar o webgpu.h fornecido pela implementação exata a que você está vinculando. Embora o cabeçalho seja estável, ainda é possível encontrar diferenças não intencionais entre as implementações à medida que continuamos corrigindo bugs e abordando a compatibilidade em todo o ecossistema. Se isso acontecer, registre um bug.

Graças ao colaborador externo William Candillon, agora é possível encontrar binários pré-criados do Dawn como artefatos no GitHub Actions. Eles incluem arquivos .lib estáticos para Android, um pacote .XCFramework para Apple e todos os arquivos de cabeçalho necessários. Consulte o PR #39 do Dawn e um exemplo dos artefatos.

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

Novidades na WebGPU

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