Neuigkeiten bei WebGPU (Chrome 151–152)

François Beaufort
François Beaufort

Veröffentlicht am 12. August 2026

Steuerung der Untergruppengröße

Wenn Sie die Untergruppengröße einer Compute-Pipeline mit dem Attribut @subgroup_size in WGSL-Compute-Shadern festlegen, können Sie die Leistung von Compute-Shadern optimieren, wenn Sie Untergruppenoperationen auf bestimmten Plattformen verwenden, z. B. für KI-Arbeitslasten.

Wenn Sie die Steuerung der Untergruppengröße in WGSL verwenden möchten, prüfen Sie, ob das Feature "subgroup-size-control" auf dem GPUAdapter verfügbar ist, und fordern Sie dann ein GPUDevice an, bei dem dieses Feature aktiviert ist. Fügen Sie in Ihrem WGSL-Code explizit enable subgroups; und enable subgroup_size_control; hinzu. Anschließend können Sie das Attribut @subgroup_size deklarieren, um sicherzustellen, dass der Compute-Shader mit einer bestimmten Untergruppengröße (die eine Zweierpotenz sein muss) im Bereich von subgroupMinSize und subgroupMaxSize ausgeführt wird, die vom Adapter bereitgestellt werden. Setzen Sie @builtin(subgroup_size) entsprechend. Ohne dieses Attribut wird die Untergruppengröße dynamisch vom GPU-Treiber ausgewählt und ist vor der Ausführung unbekannt.

Sehen Sie sich das folgende Beispiel und die Absicht zur Veröffentlichung an.

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.
  }`,
});

Ein besonderer Dank gilt unseren Partnern bei Intel für ihre hervorragende Arbeit.

OperationError für Validierungsfehler bei setImmediates

In Übereinstimmung mit der WebGPU-Spezifikation wird bei Validierungsfehlern für dataOffset oder size in setImmediates ein OperationError anstelle eines RangeError ausgelöst. Siehe CL chromium:7977566.

Dawn-Updates

Die experimentelle Unterstützung für das snorm10-10-10-2-Vertex-Format ist hinter dem Schalter "allow_unsafe_apis" verfügbar. Das Format wgpu::VertexFormat::Snorm10_10_10_2 stellt einen Vektor mit vier Komponenten dar, der 10-Bit-Ganzzahlen mit Vorzeichen für die RGB-Kanäle und eine 2-Bit-Alphakomponente enthält. Siehe Problem dawn:536160421.

OpenGL unterstützt jetzt temporäre Anhänge für Texturformate, die Tiefe oder Schablone enthalten. Siehe Problem dawn:462577182.

Dies sind nur einige der wichtigsten Highlights. Eine vollständige Liste der Commits finden Sie hier.

Neues in WebGPU

Eine Liste aller Themen, die in der Reihe „Neues in WebGPU“ behandelt wurden.

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