Novidades da WebGPU (Chrome 114)

François Beaufort
François Beaufort

Otimizar JavaScript

Os colaboradores do Chromium aceleraram o desempenho do WebGPU para os métodos GPUComputePassEncoder, GPURenderPassEncoder e GPUCommandEncoder ao reduzir a sobrecarga de fazer chamadas do 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 que o tempo de CPU das chamadas do JavaScript diminuiu de cerca de 0,5 ms por 10 mil extrações para cerca de 0,3 ms por 10 mil extrações, 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 um canvas não configurado 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 WebGPU. Consulte 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 issue tint:1892. Exemplo:

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

Atualizações do amanhecer

Melhoria nas mensagens de erro

Os rótulos de descritores para objetos inválidos não são mais descartados para que você possa vê-los nas mensagens de erro. Consulte issue 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 no WebGPU

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

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