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, ya que redujeron 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.

El siguiente microbenchmark muestra que el tiempo de CPU de las llamadas de JavaScript disminuye de alrededor de 0.5 ms por 10,000 extracciones a alrededor de 0.3 ms por 10,000 extracciones, 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 comparativas de Chrome que muestra las mejoras en las llamadas rápidas (fuente).

getCurrentTexture() en un lienzo sin configurar lanza InvalidStateError

Llamar al método GPUCanvasContext getCurrentTexture() en un lienzo sin configurar 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

Ahora, los vectores completados con ceros de AbstractInt se pueden escribir como vec2(), vec3() y vec4(). Consulta el 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 descriptor para los objetos no válidos, por lo que puedes verlas en los mensajes de error. Consulta el problema dawn:1771.

Se agregaron las APIs faltantes para Node.js

Ahora, los métodos GPUAdapter::requestAdapterInfo() y GPUBuffer::getMapState() están implementados 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 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