Novidades da WebGPU (Chrome 114)

François Beaufort
François Beaufort

Otimizar o JavaScript

Os colaboradores do Chromium aceleraram a performance da WebGPU para os métodos GPUComputePassEncoder, GPURenderPassEncoder e GPUCommandEncoder reduzindo a sobrecarga de fazer chamadas do código gerado no mecanismo JavaScript V8 para handlers 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, que diminuiu de cerca de 0,5 ms por 10 mil desenhos para cerca de 0,3 ms por 10 mil desenhos, 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 benchmark do Chrome mostrando melhorias nas chamadas rápidas (fonte).

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

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

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

Atualizações da WGSL

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

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

Atualizações do Dawn

Melhoria nas mensagens de erro

Os rótulos de descritores para objetos inválidos não estão mais sendo descartados para que você possa vê-los nas mensagens de erro. Consulte o problema dawn:1771.

Adicionar APIs ausentes para Node.js

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

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