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 mediante la reducción de la sobrecarga que implica realizar llamadas desde el código generado en el motor de JavaScript V8 a los controladores C++ en el motor de renderización de Blink. Consulta el problema chromium:1417558.

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

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

getCurrentTexture() en un lienzo no configurado arroja un error 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 problema chromium:1424461.

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

Actualizaciones de WGSL

Los vectores con relleno cero de AbstractInt ahora 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 del amanecer

Mejora los mensajes de error

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

Agrega las APIs que faltan para Node.js

Los métodos GPUAdapter::requestAdapterInfo() y GPUBuffer::getMapState() ahora están implementados para Node.js. Consulta problema dawn:1761.

Novedades de WebGPU

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