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 V8 de JavaScript a 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 a 0.3 ms por cada 10,000 muestras, lo que representa una mejora del 40%.

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

getCurrentTexture() en el lienzo no configurado genera un error InvalidStateError.

Llamar al método GPUCanvasContext getCurrentTexture() en un lienzo no configurado ahora arroja InvalidStateError en lugar de OperationError de acuerdo con las especificaciones de WebGPU. Consulta el problema chromium:1424461.

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

Actualizaciones de WGSL

Los vectores sin completar de AbstractInt ahora se pueden escribir como vec2(), vec3() y vec4(). Consulta el tono del problema:1892. Por ejemplo:

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

Actualizaciones del amanecer

Mejora los mensajes de error

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

Se agregaron las APIs que faltan para Node.js

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

Novedades de WebGPU

Una lista de todo lo que se aborda en la serie Novedades de WebGPU.

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113