Novidades da WebGPU (Chrome 114)

François Beaufort
François Beaufort

Otimizar o JavaScript

Os colaboradores do Chromium aceleraram o desempenho 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 gerenciadores C++ no mecanismo de renderização Blink. Consulte issue chromium:1417558.

A microcomparação a seguir mostra a diminuição do tempo de CPU de chamadas de JavaScript de cerca de 0,5 ms a cada 10 mil impressões para cerca de 0,3 ms a cada 10 mil desenhos, uma melhoria de 40%.

Captura de tela do gráfico de comparação do navegador Chrome mostrando melhorias nas chamadas rápidas.
Gráfico de comparação 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 (link em inglês). Consulte o problema chromium:1424461.

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

Atualizações da WGSL

Os vetores de preenchimento zero de AbstractInt agora podem ser escritos como vec2(), vec3() e vec4(). Consulte tonalidade do problema:1892. Exemplo:

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

Atualizações do amanhecer

Melhoria das mensagens de erro

Os identificadores de descritor de objetos inválidos não estão mais sendo descartados para que sejam exibidos em mensagens de erro. Consulte 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 problema dawn:1761 (link em inglês).

Novidades da WebGPU

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

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