Optimizing JavaScript
Chromium contributors sped up WebGPU performance for GPUComputePassEncoder
, GPURenderPassEncoder
, and GPUCommandEncoder
methods by reducing the overhead of making calls from generated code in V8 JavaScript engine to C++ handlers in Blink rendering engine. See issue chromium:1417558.
The following microbenchmark shows CPU time of calls from JavaScript decreasing from around 0.5 ms per 10K draws to around 0.3 ms per 10K draws, which is a 40% improvement.

getCurrentTexture() on unconfigured canvas throws InvalidStateError
Calling GPUCanvasContext
getCurrentTexture()
method on an unconfigured canvas now throws InvalidStateError
instead of OperationError
according to the WebGPU spec. See issue chromium:1424461.
const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError
WGSL updates
Zero-filled vectors of AbstractInt can now be written as vec2()
, vec3()
, and vec4()
. See issue tint:1892. For example:
vec2()
isvec2(0,0)
vec3()
isvec3(0,0,0)
vec4()
isvec4(0,0,0,0)
Dawn updates
Improving error messages
Descriptor labels for invalid objects are not being dropped anymore so that you can see them in error messages. See issue dawn:1771.
Add missing APIs for Node.js
The GPUAdapter::requestAdapterInfo()
and GPUBuffer::getMapState()
methods are now implemented for Node.js. See issue dawn:1761.