Veröffentlicht am 17. Juni 2025
Kurzform für die Verwendung von Puffern als Bindungsressource
Entwickler können jetzt einen GPUBuffer direkt als GPUBindingResource verwenden, um ihn für die Bindung im Shader verfügbar zu machen. Dadurch ist er mit anderen Bindungstypen konsistent und noch einfacher zu verwenden als eine GPUBufferBinding, wenn sowohl Größe als auch Offset Standardwerte verwenden. Siehe Problem 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 },
],
});
Änderungen der Größenanforderungen für Puffer, die bei der Erstellung zugeordnet werden
Wenn Sie einen Puffer mit mappedAtCreation auf „true“ erstellen, wird jetzt ein RangeError ausgelöst, wenn size kein Vielfaches von 4 ist. Bisher wurde dies nur mit einem GPUValidationError erzwungen. Siehe Problem 405883445.
myDevice.createBuffer({
mappedAtCreation: true,
size: 42,
usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError
Architekturbericht für aktuelle GPUs
Die neuesten GPUs von Nvidia und AMD melden ihre Architektur jetzt in GPUAdapterInfo als "blackwell" bzw. "rdna4". Außerdem wurden einige kleinere Ergänzungen zu den GPU-Architekturlisten hinzugefügt. Siehe Problem 417202748.
Einstellung des GPUAdapter-Attributs „isFallbackAdapter“
Das GPUAdapter-Attribut isFallbackAdapter wurde eingestellt. Es wurde durch das GPUAdapterInfo-Attribut isFallbackAdapter ersetzt, das in Chrome 136 eingeführt wurde. Siehe Einstellung von.
Dawn-Updates
Emscripten wird in Dawn GLFW für CMake-Builds unterstützt. So können Entwickler ihren WebGPU-plattformübergreifenden App-Code noch weiter vereinfachen, wenn sie Emdawnwebgpu verwenden. Dieses implementiert die neueste standardisierte webgpu.h über die Browser-API. Siehe Änderung dawn:242894.
Eine vollständige Anleitung finden Sie in der aktualisierten Dokumentation App mit WebGPU erstellen.
Ein „Remote“-Port von Emdawnwebgpu ist jetzt in den Paket-Releases enthalten. Ein Snapshot dieses Ports ist in Emscripten 4.0.10+ enthalten, das jetzt extern gehostete Ports unterstützt. Der Wechsel zu Emdawnwebgpu erfordert jetzt nur noch eine Änderung des Flags von emcc -sUSE_WEBGPU zu emcc --use-port=emdawnwebgpu. Siehe Emscripten-Pull-Request #24303, #24220 und Dawn-Änderungsliste 243214.
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
- Steuerung der Untergruppengröße
- OperationError für Validierungsfehler bei „setImmediates“
- Dawn-Updates
Chrome 149–150
Chrome 147–148
Chrome 146
- Unterstützung des WebGPU-Kompatibilitätsmodus unter OpenGL ES 3.1
- Temporäre Anhänge
- WGSL-Erweiterung „texture_and_sampler_let“
- Dawn-Updates
Chrome 145
- WGSL-Erweiterung „subgroup_uniformity“
- Experimentelle synchrone Pufferzuordnung in Workern
- Dawn-Updates
Chrome 144
- WGSL-Erweiterung „subgroup_id“
- WGSL-Erweiterung „uniform_buffer_standard_layout“
- WebGPU unter Linux
- Schnellere „writeBuffer“ und „writeTexture“
- Dawn-Updates
Chrome 143
- Swizzle für Texturkomponenten
- Entfernung der Verwendung von schreibgeschützten bgra8unorm-Speichertexturen
- Dawn-Updates
Chrome 142
Chrome 141
- Tint IR abgeschlossen
- Analyse von Ganzzahlbereichen im WGSL-Compiler
- SPIR-V 1.4-Update für das Vulkan-Back-End
- Dawn-Updates
Chrome 140
- Geräteanfragen belegen Adapter
- Kurzform für die Verwendung von Texturen, wenn Texturansichten verwendet werden
- WGSL-Funktion „textureSampleLevel“ unterstützt 1D-Texturen
- Einstellung der Verwendung von schreibgeschützten bgra8unorm-Speichertexturen
- Entfernung des GPUAdapter-Attributs „isFallbackAdapter“
- Dawn-Updates
Chrome 139
- Unterstützung von 3D-Texturen für komprimierte BC- und ASTC-Formate
- Neue Funktion „core-features-and-limits“
- Ursprungstest für den WebGPU-Kompatibilitätsmodus
- Dawn-Updates
Chrome 138
- Kurzform für die Verwendung von Puffern als Bindungsressource
- Änderungen der Größenanforderungen für Puffer, die bei der Erstellung zugeordnet werden
- Architekturbericht für aktuelle GPUs
- Einstellung des GPUAdapter-Attributs „isFallbackAdapter“
- Dawn-Updates
Chrome 137
- Verwendung von Texturansichten für die Bindung von „externalTexture“
- Kopieren von Puffern ohne Angabe von Offsets und Größe
- WGSL-Funktion „workgroupUniformLoad“ mit Zeiger auf „atomic“
- GPUAdapterInfo-Attribut „powerPreference“
- Entfernung des GPURequestAdapterOptions-Attributs „compatibilityMode“
- Dawn-Updates
Chrome 136
- GPUAdapterInfo-Attribut „isFallbackAdapter“
- Verbesserungen der Shader-Kompilierungszeit unter D3D12
- Canvas-Bilder speichern und kopieren
- Aufhebung der Einschränkungen des Kompatibilitätsmodus
- Dawn-Updates
Chrome 135
- Erstellung von Pipeline-Layouts mit Null-Bindungsgruppen-Layout zulassen
- Ansichtsfenster dürfen über die Grenzen der Renderziele hinausgehen
- Einfacherer Zugriff auf den experimentellen Kompatibilitätsmodus unter Android
- Entfernung des Limits „maxInterStageShaderComponents“
- Dawn-Updates
Chrome 134
- Verbesserung von Arbeitslasten für maschinelles Lernen mit Untergruppen
- Entfernung der Unterstützung von filterbaren Texturtypen mit Gleitkommazahlen als mischbar
- Dawn-Updates
Chrome 133
- Zusätzliche unorm8x4-bgra- und 1-Komponenten-Vertex-Formate
- Anfrage unbekannter Limits mit undefiniertem Wert zulassen
- Änderungen der WGSL-Ausrichtungsregeln
- WGSL-Leistungssteigerungen mit „discard“
- Verwendung von „VideoFrame.displaySize“ für externe Texturen
- Verarbeitung von Bildern mit nicht standardmäßigen Ausrichtungen mit „copyExternalImageToTexture“
- Verbesserung der Entwicklerfreundlichkeit
- Aktivierung des Kompatibilitätsmodus mit „featureLevel“
- Bereinigung experimenteller Untergruppenfunktionen
- Einstellung des Limits „maxInterStageShaderComponents“
- Dawn-Updates
Chrome 132
- Verwendung von Texturansichten
- Mischen von 32-Bit-Gleitkomma-Texturen
- GPUDevice-Attribut „adapterInfo“
- Konfiguration des Canvas-Kontexts mit ungültigem Format löst JavaScript-Fehler aus
- Einschränkungen für Sampler auf Texturen filtern
- Erweiterte Experimente mit Untergruppen
- Verbesserung der Entwicklerfreundlichkeit
- Experimentelle Unterstützung für normalisierte 16-Bit-Texturformate
- Dawn-Updates
Chrome 131
- Clip-Entfernungen in WGSL
- GPUCanvasContext.getConfiguration()
- Punkt- und Linienprimitive dürfen keine Tiefenverzerrung haben
- Inklusive Scan-Funktionen für Untergruppen
- Experimentelle Unterstützung für „multi-draw indirect“
- Option „strict math“ für die Kompilierung von Shader-Modulen
- Entfernung von GPUAdapter.requestAdapterInfo()
- Dawn-Updates
Chrome 130
- Mischen mit zwei Quellen
- Verbesserungen der Shader-Kompilierungszeit unter Metal
- Einstellung von GPUAdapter.requestAdapterInfo()
- Dawn-Updates
Chrome 129
- HDR-Unterstützung mit Canvas-Tone Mapping-Modus
- Erweiterte Unterstützung für Untergruppen
- Dawn-Updates
Chrome 128
- Experimente mit Untergruppen
- Einstellung der Festlegung von Tiefenverzerrungen für Linien und Punkte
- Ausblenden der Entwicklertools-Warnung für nicht erfasste Fehler, wenn „preventDefault“ verwendet wird
- WGSL-Funktion „interpolate“: zuerst Sampling und dann entweder
- Dawn-Updates
Chrome 127
- Experimentelle Unterstützung für OpenGL ES unter Android
- GPUAdapter-Attribut „info“
- Verbesserungen der WebAssembly-Interoperabilität
- Verbesserte Fehlermeldungen für Befehlscodierer
- Dawn-Updates
Chrome 126
- Erhöhung des Limits „maxTextureArrayLayers“
- Optimierung des Puffer-Uploads für das Vulkan-Back-End
- Verbesserungen der Shader-Kompilierungszeit
- Übermittelte Befehlspuffer müssen eindeutig sein
- Dawn-Updates
Chrome 125
Chrome 124
- Schreibgeschützte und Lese-/Schreib-Speichertexturen
- Unterstützung für Service Worker und Shared Worker
- Neue Attribute für Adapterinformationen
- Diverse Fehlerkorrekturen
- Dawn-Updates
Chrome 123
- Unterstützung für integrierte DP4a-Funktionen in WGSL
- Uneingeschränkte Zeigerparameter in WGSL
- Syntax-Zucker für die Dereferenzierung von Composites in WGSL
- Separater schreibgeschützter Status für Schablonen- und Tiefenaspekte
- Dawn-Updates
Chrome 122
- Erweiterung der Reichweite mit dem Kompatibilitätsmodus (Funktion in Entwicklung)
- Erhöhung des Limits „maxVertexAttributes“
- Dawn-Updates
Chrome 121
- Unterstützung von WebGPU unter Android
- Verwendung von DXC anstelle von FXC für die Shader-Kompilierung unter Windows
- Zeitstempelabfragen in Compute- und Rendering-Passes
- Standardmäßige Einstiegspunkte für Shader-Module
- Unterstützung von „display-p3“ als GPUExternalTexture-Farbraum
- Informationen zu Arbeitsspeicher-Heaps
- Dawn-Updates
Chrome 120
- Unterstützung für 16-Bit-Gleitkommawerte in WGSL
- Limits erweitern
- Änderungen am Tiefen- und Schablonenstatus
- Updates für Adapterinformationen
- Quantisierung von Zeitstempelabfragen
- Bereinigung von Funktionen
Chrome 119
- Filterbare 32-Bit-Gleitkomma-Texturen
- Vertex-Format „unorm10-10-10-2“
- Texturformat „rgb10a2uint“
- Dawn-Updates
Chrome 118
- Unterstützung für HTMLImageElement und ImageData in
copyExternalImageToTexture() - Experimentelle Unterstützung für Lese-/Schreib- und schreibgeschützte Speichertexturen
- Dawn-Updates
Chrome 117
- Vertex-Puffer aufheben
- Bindungsgruppe aufheben
- Fehler bei der asynchronen Pipeline-Erstellung unterdrücken, wenn das Gerät verloren geht
- Updates für die Erstellung von SPIR-V-Shader-Modulen
- Verbesserung der Entwicklerfreundlichkeit
- Pipelines mit automatisch generiertem Layout im Cache speichern
- Dawn-Updates
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät, das von GPUAdapter zurückgegeben wird
requestDevice() - Reibungslose Videowiedergabe, wenn
importExternalTexture()aufgerufen wird - Spezifikationskonformität
- Verbesserung der Entwicklerfreundlichkeit
- Dawn-Updates
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Standardmäßig diskrete GPU bei Netzstrom
- Verbesserung der Entwicklerfreundlichkeit
- Dawn-Updates
Chrome 114
- JavaScript optimieren
- „getCurrentTexture()“ für nicht konfigurierte Canvas-Elemente löst InvalidStateError aus
- WGSL-Updates
- Dawn-Updates