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 mit aktiviertem Feature an. 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 Potenz von 2 sein muss) im Bereich von subgroupMinSize und subgroupMaxSize ausgeführt wird, der vom Adapter bereitgestellt wird. Setzen Sie @builtin(subgroup_size) entsprechend. Ohne dieses Attribut wird die Untergruppengröße dynamisch vom GPU-Treiber ausgewählt und bleibt vor der Ausführung unbekannt.
Sehen Sie sich das folgende Beispiel und die Absicht zur Auslieferung 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 eine OperationError anstelle einer RangeError ausgegeben. Siehe CL chromium:7977566.
Änderungen bei Dawn
Die experimentelle Unterstützung für das Vertex-Format „snorm10-10-10-2“ ist hinter dem Schalter „allow_unsafe_apis“ verfügbar. Das wgpu::VertexFormat::Snorm10_10_10_2-Format stellt einen Vektor mit vier Komponenten dar, der vorzeichenbehaftete normalisierte 10-Bit-Ganzzahlen 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 mit Tiefe oder Stencil. Siehe Problem dawn:462577182.
Dies sind nur einige der wichtigsten Highlights. Vollständige Liste der Commits
Neu bei WebGPU
Eine Liste aller Themen, die in der Reihe Neu in WebGPU behandelt wurden.
Chrome 155–156
- WGSL-Erweiterung „fragment_depth“
- Nicht ausgerichtete Texturkomprimierung
- Lineare sRGB- und Display-P3-Farbräume
- Zusätzliches snorm10-10-10-2-Vertexformat
- Unterstützung von f16 unter Linux für NVIDIA
- Updates zu Dawn
Chrome 153–154
- WGSL-Erweiterung „buffer_view“
- WGSL-Erweiterung „swizzle_assignment“
- WGSL-Erweiterungsupdates
- Updates zu Dawn
Chrome 151–152
- Steuerung der Untergruppengröße
- OperationError für Validierungsfehler bei setImmediates
- Updates zu Dawn
Chrome 149–150
Chrome 147–148
Chrome 146
- Unterstützung des WebGPU-Kompatibilitätsmodus auf OpenGL ES 3.1
- Vorübergehende Anhänge
- WGSL-Erweiterung „texture_and_sampler_let“
- Updates zu Dawn
Chrome 145
- WGSL-Erweiterung „subgroup_uniformity“
- Experimentelles synchrones Puffer-Mapping in Workern
- Updates zu Dawn
Chrome 144
- WGSL-Erweiterung für subgroup_id
- WGSL-Erweiterung „uniform_buffer_standard_layout“
- WebGPU unter Linux
- Schnellere writeBuffer- und writeTexture-Funktionen
- Updates zu Dawn
Chrome 143
- Swizzle für Texturkomponenten
- Entfernen der schreibgeschützten Speichertextur „bgra8unorm“
- Updates zu Dawn
Chrome 142
Chrome 141
- Tint IR completed
- Analyse des Ganzzahlbereichs im WGSL-Compiler
- SPIR-V 1.4-Update für Vulkan-Backend
- Updates zu Dawn
Chrome 140
- Geräteanfragen verbrauchen Adapter
- Abkürzung für die Verwendung von Textur, wenn die Texturansicht verwendet wird
- WGSL-Funktion „textureSampleLevel“ unterstützt 1D-Texturen
- Einstellung der Verwendung von schreibgeschützten bgra8unorm-Speichertexturen
- GPUAdapter-Attribut „isFallbackAdapter“ entfernen
- Updates zu Dawn
Chrome 139
- Unterstützung von 3D-Texturen für BC- und ASTC-komprimierte Formate
- Neue Funktion „core-features-and-limits“
- Ursprungstest für den WebGPU-Kompatibilitätsmodus
- Updates zu Dawn
Chrome 138
- Kurzform für die Verwendung von Puffer als Bindungsressource
- Änderungen der Größenanforderungen für Puffer, die bei der Erstellung zugeordnet werden
- Architekturbericht für aktuelle GPUs
- GPUAdapter-Attribut „isFallbackAdapter“ wird nicht mehr unterstützt
- Updates zu Dawn
Chrome 137
- Texturansicht für die Bindung von „externalTexture“ verwenden
- Puffer werden ohne Angabe von Offsets und Größe kopiert
- WGSL-WorkgroupUniformLoad mit Zeiger auf Atomic
- GPUAdapterInfo-Attribut „powerPreference“
- Entfernen des Attributs „compatibilityMode“ aus GPURequestAdapterOptions
- Updates zu Dawn
Chrome 136
- GPUAdapterInfo-Attribut „isFallbackAdapter“
- Verbesserungen bei der Shader-Kompilierungszeit unter D3D12
- Bilder auf der Leinwand speichern und kopieren
- Einschränkungen für den Kompatibilitätsmodus für die Analyse der Anzeigenwirkung
- Updates zu Dawn
Chrome 135
- Erstellen von Pipeline-Layouts mit Null-Bindungsgruppen-Layout zulassen
- Zulassen, dass Viewports über die Grenzen der Renderziele hinausgehen
- Einfacherer Zugriff auf den experimentellen Kompatibilitätsmodus unter Android
- Entfernen des Limits „maxInterStageShaderComponents“
- Updates zu Dawn
Chrome 134
- Arbeitslasten für maschinelles Lernen mit Untergruppen verbessern
- Unterstützung für float-filterbare Texturtypen als mischbar entfernen
- Updates zu Dawn
Chrome 133
- Zusätzliche unorm8x4-bgra- und 1-Komponenten-Vertex-Formate
- Allow unknown limits to be requested with undefined value
- Änderungen an den WGSL-Ausrichtungsregeln
- WGSL-Leistungssteigerungen mit „discard“
- VideoFrame.displaySize für externe Texturen verwenden
- Bilder mit nicht standardmäßigen Ausrichtungen mit copyExternalImageToTexture verarbeiten
- Für die Entwicklung optimiert
- Kompatibilitätsmodus mit „featureLevel“ aktivieren
- Bereinigung experimenteller Untergruppenfunktionen
- Limit „maxInterStageShaderComponents“ einstellen
- Updates zu Dawn
Chrome 132
- Nutzung der Texturansicht
- 32-Bit-Gleitkomma-Texturen zusammenführen
- GPUDevice-Attribut „adapterInfo“
- JavaScript-Fehler beim Konfigurieren des Canvas-Kontexts mit ungültigem Format
- Sampler-Einschränkungen für Texturen filtern
- Erweiterte Tests für Untergruppen
- Für die Entwicklung optimiert
- Experimentelle Unterstützung für normalisierte 16-Bit-Texturformate
- Updates zu Dawn
Chrome 131
- Clip-Distanzen in WGSL
- GPUCanvasContext getConfiguration()
- Punkt- und Linienprimitive dürfen keine Tiefenabweichung haben
- Integrierte Funktionen für inklusive Scans für Untergruppen
- Experimentelle Unterstützung für indirekte Multi-Draw-Kampagnen
- Kompilierungsoption für Shadermodule „strict math“
- Entfernen von GPUAdapter.requestAdapterInfo()
- Updates zu Dawn
Chrome 130
- Zusammenführen von zwei Quellen
- Verbesserungen bei der Shader-Kompilierungszeit auf Metal
- Einstellung von GPUAdapter.requestAdapterInfo()
- Updates zu Dawn
Chrome 129
- HDR-Unterstützung mit Canvas-Tone Mapping-Modus
- Erweiterte Unterstützung von Untergruppen
- Updates zu Dawn
Chrome 128
- Untergruppen testen
- Festlegen des Tiefen-Bias für Linien und Punkte wird eingestellt
- Warnung in den Entwicklertools für nicht abgefangene Fehler ausblenden, wenn preventDefault
- WGSL-Interpolations-Sampling zuerst und entweder
- Updates zu Dawn
Chrome 127
- Experimentelle Unterstützung für OpenGL ES unter Android
- GPUAdapter-Attribut „info“
- Verbesserungen der WebAssembly-Interop-Funktion
- Verbesserte Fehlerbehebung bei der Befehlscodierung
- Updates zu Dawn
Chrome 126
- maxTextureArrayLayers-Limit erhöhen
- Optimierung des Puffer-Uploads für das Vulkan-Backend
- Verbesserungen bei der Shader-Kompilierungszeit
- Eingereichte Befehlspuffer müssen eindeutig sein
- Updates zu Dawn
Chrome 125
Chrome 124
- Speicher-Textures mit Lese- und Lese-/Schreibzugriff
- Unterstützung von Service Workern und Shared Workers
- Neue Attribute für Adapterinformationen
- Diverse Fehlerkorrekturen
- Updates zu Dawn
Chrome 123
- Unterstützung von integrierten DP4a-Funktionen in WGSL
- Uneingeschränkte Zeigerparameter in WGSL
- Syntaktischer Zucker zum Dereferenzieren von Composites in WGSL
- Separater schreibgeschützter Status für Schablonen- und Tiefenaspekte
- Updates zu Dawn
Chrome 122
- Reichweite mit dem Kompatibilitätsmodus erhöhen (Funktion in der Entwicklung)
- Limit für maxVertexAttributes erhöhen
- Updates zu Dawn
Chrome 121
- WebGPU auf Android unterstützen
- DXC anstelle von FXC für die Shader-Kompilierung unter Windows verwenden
- Zeitstempelabfragen in Compute- und Render-Passes
- Standardeinstiegspunkte für Shadermodule
- Unterstützung von „display-p3“ als GPUExternalTexture-Farbraum
- Informationen zu Speicher-Heaps
- Updates zu Dawn
Chrome 120
- Unterstützung von 16‑Bit-Gleitkommawerten in WGSL
- Grenzen ausloten
- Änderungen am Tiefen-Stencil-Zustand
- Aktualisierungen der Adapterinformationen
- Quantisierung von Zeitstempelabfragen
- Funktionen für den Frühjahrsputz
Chrome 119
- Filterbare 32-Bit-Gleitkomma-Texturen
- unorm10-10-10-2-Vertexformat
- rgb10a2uint-Texturformat
- Updates zu Dawn
Chrome 118
- Unterstützung von HTMLImageElement und ImageData in
copyExternalImageToTexture() - Experimentelle Unterstützung für Lese-/Schreib- und Nur-Lese-Speichertexturen
- Updates zu Dawn
Chrome 117
- Vertex-Puffer zurücksetzen
- Bindungsgruppe aufheben
- Fehler beim asynchronen Erstellen von Pipelines unterdrücken, wenn das Gerät verloren gegangen ist
- Aktualisierungen bei der Erstellung von SPIR-V-Shader-Modulen
- Für die Entwicklung optimiert
- Pipelines mit automatisch generiertem Layout im Cache speichern
- Updates zu Dawn
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät wird von GPUAdapter
requestDevice()zurückgegeben - Flüssige Videowiedergabe bei Aufruf von
importExternalTexture() - Spezifikationskonformität
- Für die Entwicklung optimiert
- Updates zu Dawn
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Standardmäßig diskrete GPU bei Stromversorgung über Wechselstrom
- Für die Entwicklung optimiert
- Updates zu Dawn
Chrome 114
- JavaScript optimieren
- „getCurrentTexture()“ für nicht konfigurierte Canvas löst „InvalidStateError“ aus
- WGSL-Updates
- Updates zu Dawn