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.

En la siguiente microcomparativa, se muestra que el tiempo de CPU de las llamadas desde JavaScript disminuye de alrededor de 0.5 ms por 10,000 operaciones de dibujo a alrededor de 0.3 ms por 10,000 operaciones de dibujo, lo que representa una mejora del 40%.

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

getCurrentTexture() en un lienzo sin configurar arroja InvalidStateError.

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

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

Actualizaciones de WGSL

Los vectores rellenos de cero de AbstractInt ahora se pueden escribir como vec2(), vec3() y vec4(). Consulta problema tint:1892. Por ejemplo:

  • El valor de vec2() es vec2(0,0)
  • El valor de vec3() es vec3(0,0,0)
  • El valor de vec4() es vec4(0,0,0,0)

Actualizaciones de Dawn

Mejora de los mensajes de error

Ya no se descartan las etiquetas de descriptores para objetos no válidos, de modo que puedas verlas en los mensajes de error. Consulta el problema dawn:1771.

Agrega las APIs faltantes para Node.js

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

Novedades de WebGPU

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