Novidades da WebGPU (Chrome 114)

François Beaufort
François Beaufort

Otimizar JavaScript

Os colaboradores do Chromium aceleraram o desempenho da WebGPU para os métodos GPUComputePassEncoder, GPURenderPassEncoder e GPUCommandEncoder, reduzindo a sobrecarga de chamadas de código gerado no mecanismo JavaScript V8 para manipuladores C++ no mecanismo de renderização Blink. Consulte o problema chromium:1417558.

O microbenchmark a seguir mostra o tempo de CPU das chamadas do JavaScript diminuindo de cerca de 0,5 ms por 10 mil sorteios para cerca de 0,3 ms por 10 mil sorteios, o que representa uma melhoria de 40%.

Captura de tela do gráfico de comparativo de mercado do navegador Chrome mostrando melhorias nas chamadas rápidas.
Gráfico de comparativo de mercado do Chrome mostrando melhorias nas chamadas rápidas (fonte).

getCurrentTexture() em uma tela não configurada gera InvalidStateError.

Chamar o método getCurrentTexture() GPUCanvasContext em uma tela não configurada agora gera InvalidStateError em vez de OperationError de acordo com a especificação do WebGPU. Consulte problema chromium:1424461.

const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError

Atualizações da WGSL

Os vetores preenchidos com zeros de AbstractInt agora podem ser escritos como vec2(), vec3() e vec4(). Consulte o Issue tint:1892. Exemplo:

  • vec2() é vec2(0,0)
  • vec3() é vec3(0,0,0)
  • vec4() é vec4(0,0,0,0)

Atualizações do Dawn

Melhorar as mensagens de erro

Os rótulos de descritor de objetos inválidos não são mais descartados para que você possa encontrá-los em mensagens de erro. Consulte o problema dawn:1771.

Adicionar APIs ausentes para Node.js

Os métodos GPUAdapter::requestAdapterInfo() e GPUBuffer::getMapState() agora estão implementados para Node.js. Consulte o problema dawn:1761.

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