JavaScript optimieren
Chromium-Entwickler haben die WebGPU-Leistung für die Methoden GPUComputePassEncoder
, GPURenderPassEncoder
und GPUCommandEncoder
beschleunigt, indem sie den Overhead bei Aufrufen von generiertem Code in der V8-JavaScript-Engine an C++-Handler in der Blink-Rendering-Engine reduziert haben. Siehe issue chromium:1417558.
Der folgende Mikrobenchmark zeigt, dass die CPU-Zeit von Aufrufen aus JavaScript von etwa 0,5 ms pro 10.000 Zeichnungen auf etwa 0,3 ms pro 10.000 Zeichnungen gesunken ist, was einer Verbesserung von 40% entspricht.
getCurrentTexture() auf nicht konfiguriertem Canvas löst InvalidStateError aus
Beim Aufrufen der getCurrentTexture()
-Methode GPUCanvasContext
auf einem nicht konfigurierten Canvas wird gemäß der WebGPU-Spezifikation jetzt InvalidStateError
statt OperationError
ausgelöst. Siehe Problem chromium:1424461.
const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError
WGSL-Updates
Null-gefüllte Vektoren von AbstractInt können jetzt als vec2()
, vec3()
und vec4()
geschrieben werden. Siehe issue tint:1892. Beispiel:
vec2()
istvec2(0,0)
vec3()
istvec3(0,0,0)
vec4()
istvec4(0,0,0,0)
Dawn-Updates
Fehlermeldungen verbessern
Deskriptorlabels für ungültige Objekte werden nicht mehr gelöscht, sodass Sie sie in Fehlermeldungen sehen können. Siehe Problem dawn:1771.
Fehlende APIs für Node.js hinzufügen
Die Methoden GPUAdapter::requestAdapterInfo()
und GPUBuffer::getMapState()
sind jetzt für Node.js implementiert. Siehe Problem dawn:1761.
Das ist neu bei WebGPU
Eine Liste aller behandelten Themen der Reihe What's New in WebGPU.
Chrome 131
- Clip-Abstände in WGSL
- GPUCanvasContext getConfiguration()
- Punkt- und Linienprimitive dürfen keine Tiefenverzerrung haben.
- Integrierte Funktionen zum inklusiven Scan für Untergruppen
- Experimentelle Unterstützung für indirekte Multi-Draw-Anweisungen
- Shader-Modul-Kompilierungsoption „strict math“
- GPUAdapter-Methode „requestAdapterInfo()“ entfernen
- Dawn-Updates
Chrome 130
- Dual-Source-Mischung
- Verbesserte Shader-Kompilierungszeiten unter Metal
- Einstellung der GPUAdapter-Methode „requestAdapterInfo()“
- Updates zur Morgendämmerung
Chrome 129
- HDR-Unterstützung im Canvas Tone Mapping-Modus
- Erweiterter Support für Untergruppen
- Updates zur Morgendämmerung
Chrome 128
- Mit Untergruppen experimentieren
- Tiefenverzerrung für Linien und Punkte verwerfen
- Nicht erfasste Fehlerwarnung in den Entwicklertools bei preventDefault ausblenden
- WGSL interpoliert zuerst die Stichprobe und
- Dawn-Updates
Chrome 127
- Experimentelle Unterstützung für OpenGL ES auf Android-Geräten
- GPUAdapter-Infoattribut
- Verbesserungen bei der WebAssembly-Interoperabilität
- Verbesserte Fehlermeldungen beim Befehls-Encoder
- Dawn-Updates
Chrome 126
- Limit für maxTextureArrayLayers erhöhen
- Optimierung des Pufferuploads für das Vulkan-Backend
- Verbesserte Shader-Kompilierungszeiten
- Gesendete Befehlspuffer müssen eindeutig sein
- Dawn-Updates
Chrome 125
Chrome 124
- Lese- und Lese-/Schreibspeichertextur
- Unterstützung für Dienst- und freigegebene Worker
- Neue Attribute für Adapterinformationen
- Diverse Fehlerkorrekturen
- Updates zur Morgendämmerung
Chrome 123
- Unterstützung der integrierten DP4a-Funktionen in WGSL
- Uneingeschränkte Zeigerparameter in WGSL
- Syntax-Optimierung für die Dereferenzierung von Kompositen in WGSL
- Separater schreibgeschützter Status für Stencil- und Tiefenansichten
- Dawn-Updates
Chrome 122
- Reichweite mit Kompatibilitätsmodus erhöhen (Funktion in Entwicklung)
- maxVertexAttributes-Limit erhöhen
- Dawn-Updates
Chrome 121
- Unterstützung von WebGPU auf Android-Geräten
- DXC anstelle von FXC für die Shaderkompilierung unter Windows verwenden
- Zeitstempelabfragen in Compute- und Rendering-Passes
- Standardeinstiegspunkte in Shadermodule
- Unterstützung von display-p3 als GPUExternalTexture-Farbraum
- Informationen zu Arbeitsspeicher-Heaps
- Dawn-Updates
Chrome 120
- Unterstützung von 16‑Bit-Gleitkommawerten in WGSL
- Grenzen überschreiten
- Änderungen am Tiefen-/Schatten-Status
- Aktualisierte Informationen zu Adaptern
- Zeitstempelquantisierung von Abfragen
- Funktionen für den Frühjahrsputz
Chrome 119
- Filterbare 32-Bit-Float-Texturen
- unorm10-10-10-2 Vertexformat
- rgb10a2uint-Texturformat
- Updates zur Morgendämmerung
Chrome 118
- Unterstützung von HTMLImageElement und ImageData in
copyExternalImageToTexture()
- Experimentelle Unterstützung für Lese-/Schreib- und schreibgeschützte Speichertextur
- Dawn-Updates
Chrome 117
- Vertex-Zwischenspeicher aufheben
- Bindungsgruppe aufheben
- Fehler bei der asynchronen Pipelineerstellung stummschalten, wenn Gerät verloren geht
- Änderungen beim Erstellen von SPIR-V-Shadermodulen
- Entwicklerfreundlichkeit verbessern
- Pipelines mit automatisch generiertem Layout im Cache speichern
- Dawn-Updates
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät, das von GPUAdapter
requestDevice()
zurückgegeben wurde - Videowiedergabe bei Aufruf von
importExternalTexture()
flüssig halten - Einhaltung der Spezifikationen
- Entwicklererfahrung verbessern
- Dawn-Updates
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Unterstützung für diskrete GPU standardmäßig bei Wechselstromversorgung
- Entwicklererfahrung verbessern
- Dawn-Updates
Chrome 114
- JavaScript optimieren
- Bei nicht konfiguriertem Canvas wird bei getCurrentTexture() ein InvalidStateError geworfen
- WGSL-Updates
- Updates zur Morgendämmerung