Novedades de WebGPU (Chrome 114)

François Beaufort
François Beaufort

Optimiza JavaScript

Los colaboradores de Chromium aceleraron el rendimiento de WebGPU para los métodos GPUComputePassEncoder, GPURenderPassEncoder y GPUCommandEncoder reduciendo la sobrecarga de realizar llamadas desde el código generado en el motor de JavaScript V8 a los controladores de C++ en el motor de renderización Blink. Consulta el problema chromium:1417558.

La siguiente microprueba comparativa muestra que el tiempo de CPU de las llamadas de JavaScript disminuye de aproximadamente 0.5 ms por 10,000 dibujos a aproximadamente 0.3 ms por 10,000 dibujos, lo que representa una mejora del 40%.

Captura de pantalla del gráfico comparativo del navegador Chrome que muestra las mejoras en las llamadas rápidas.
Gráfico de pruebas comparativas de Chrome que muestra mejoras en las llamadas rápidas (fuente).

getCurrentTexture() en un lienzo no configurado lanza InvalidStateError

Llamar al método GPUCanvasContext getCurrentTexture() en un lienzo no configurado ahora lanza InvalidStateError en lugar de OperationError según la especificación de WebGPU. Consulta el problema chromium:1424461.

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

Actualizaciones de WGSL

Ahora, los vectores llenos de cero de AbstractInt se pueden escribir como vec2(), vec3() y vec4(). Consulta el problema tint:1892. Por ejemplo:

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

Actualizaciones de Dawn

Mejora los mensajes de error

Las etiquetas de descriptor para objetos no válidos ya no se descartan para que puedas verlas en los mensajes de error. Consulta el problema dawn:1771.

Agrega las APIs faltantes para Node.js

Ahora, los métodos GPUAdapter::requestAdapterInfo() y GPUBuffer::getMapState() se implementan para Node.js. Consulta el problema dawn:1761.

Novedades de WebGPU

Una lista de todo lo que se abordó en la serie Novedades de 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