What's New in WebGPU (Chrome 138)

François Beaufort
François Beaufort

Published: Jun 17, 2025

Shorthand for using buffer as a binding resource

Developers can now use a GPUBuffer directly as a GPUBindingResource to expose to the shader for binding. This makes it consistent with other binding types and even simpler to use than a GPUBufferBinding when both size and offset use default values. See issue 419223794.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTextureView },
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
    { binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
  ],
});

Size requirement changes for buffers mapped at creation

Creating a buffer with mappedAtCreation set to true now throws a RangeError if size is not a multiple of 4. This was previously enforced with a GPUValidationError only. See issue 405883445.

myDevice.createBuffer({
  mappedAtCreation: true,
  size: 42,
  usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError

Architecture report for recent GPUs

The latest GPUs from Nvidia and AMD now report their architecture in GPUAdapterInfo as "blackwell" and "rdna4" respectively, as well as a few other minor additions to the GPU architecture listings. See issue 417202748.

Deprecate GPUAdapter isFallbackAdapter attribute

The GPUAdapter isFallbackAdapter attribute is deprecated. It's replaced by the GPUAdapterInfo isFallbackAdapter attribute that was introduced in Chrome 136. See intent to deprecate.

Dawn updates

Emscripten is supported in Dawn GLFW for CMake builds allowing developers to simplify even further their WebGPU cross-platform app code when using Emdawnwebgpu, which implements the latest standardized webgpu.h over the browser API. See change dawn:242894.

For a complete guide, check out the updated Build an app with WebGPU documentation.

A "remote" Emdawnwebgpu port is now included in package releases. A snapshot of this port is included in Emscripten 4.0.10+, which now supports externally hosted ports. Switching to Emdawnwebgpu is now a single flag change from emcc -sUSE_WEBGPU to emcc --use-port=emdawnwebgpu. See Emscripten PR #24303, #24220, and Dawn CL 243214.

This covers only some of the key highlights. Check out the exhaustive list of commits.

What's New in WebGPU

A list of everything that has been covered in the What's New in WebGPU series.

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