What's New in WebGPU (Chrome 151-152)

François Beaufort
François Beaufort

Published: August 12, 2026

Subgroup size control

Setting the subgroup size of a compute pipeline using the @subgroup_size attribute in WGSL compute shaders is beneficial for optimizing compute shader performance when using subgroup operations on specific platforms, such as for AI workloads.

To use subgroup size control in WGSL, check if the "subgroup-size-control" feature is available on the GPUAdapter, then request a GPUDevice with this feature enabled. In your WGSL code, explicitly add enable subgroups; and enable subgroup_size_control;. You can then declare the @subgroup_size attribute to guarantee that the compute shader runs at at a specific subgroup size (which must be a power of 2) within the range of subgroupMinSize and subgroupMaxSize provided by the adapter, setting @builtin(subgroup_size) to match. Without this attribute, the subgroup size is selected dynamically by the GPU driver and remains unknown prior to execution.

See the following example and the intent to ship.

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroup-size-control")) {
  throw new Error("Subgroup size control support is not available");
}
// Explicitly request subgroup size control support.
const device = await adapter.requestDevice({
  requiredFeatures: ["subgroup-size-control"],
});

const shaderModule = device.createShaderModule({ code: `
  enable subgroups;
  enable subgroup_size_control;

  @subgroup_size(32)
  @compute @workgroup_size(64, 1, 1)
  fn main(@builtin(subgroup_invocation_id) sg_id : u32,
          @builtin(subgroup_size) sg_size : u32) {
     // TODO: Compute shader logic using specific subgroup size.
  }`,
});

A special thank you to our partners at Intel for their outstanding work!

OperationError for setImmediates validation failures

To align with the WebGPU specification, validation failures for dataOffset or size in setImmediates throw an OperationError instead of a RangeError. See CL chromium:7977566.

Dawn updates

Experimental support for snorm10-10-10-2 vertex format is available behind the "allow_unsafe_apis" toggle. The wgpu::VertexFormat::Snorm10_10_10_2 format represents a four-component vector featuring 10-bit signed normalized integers for the RGB channels and a 2-bit alpha component. See issue dawn:536160421.

OpenGL now supports transient attachments for texture formats containing depth or stencil. See issue dawn:462577182.

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 151-152

Chrome 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

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