JavaScript optimieren
Chromium-Beitragende haben die WebGPU-Leistung für die Methoden GPUComputePassEncoder, GPURenderPassEncoder und GPUCommandEncoder verbessert, indem sie den Overhead von Aufrufen aus generiertem Code in der V8 JavaScript-Engine zu C++-Handlern in der Blink-Rendering-Engine reduziert haben. Siehe Problem chromium:1417558.
Der folgende Microbenchmark zeigt, dass die CPU-Zeit für Aufrufe von JavaScript von etwa 0,5 ms pro 10.000 Zeichnungen auf etwa 0,3 ms pro 10.000 Zeichnungen gesunken ist. Das entspricht einer Verbesserung von 40 %.
„getCurrentTexture()“ für nicht konfigurierte Canvas-Elemente löst „InvalidStateError“ aus
Wenn die Methode GPUCanvasContext getCurrentTexture() für ein nicht konfiguriertes Canvas-Element aufgerufen wird, wird jetzt gemäß der WebGPU-Spezifikation InvalidStateError anstelle von OperationError ausgelöst. Siehe Problem chromium:1424461.
const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError
WGSL-Updates
Mit Nullen gefüllte Vektoren von AbstractInt können jetzt als vec2(), vec3() und vec4() geschrieben werden. Siehe Problem 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 entfernt, sodass sie in Fehlermeldungen angezeigt werden 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.
Neues in WebGPU
Eine Liste aller Themen, die in der Reihe „Neues in WebGPU“ behandelt wurden.
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 schreibgeschützten Speichertextur „bgra8unorm“
- Dawn-Updates
Chrome 142
Chrome 141
- Tint IR abgeschlossen
- Analyse des Ganzzahlbereichs im WGSL-Compiler
- SPIR-V 1.4-Update für das Vulkan-Backend
- Dawn-Updates
Chrome 140
- Geräteanfragen belegen Adapter
- Kurzform für die Verwendung von Texturen, wenn Texturansichten verwendet werden
- „WGSL textureSampleLevel“ unterstützt 1D-Texturen
- Entfernung der schreibgeschützten Speichertextur „bgra8unorm“
- 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
- Entfernung des GPUAdapter-Attributs „isFallbackAdapter“
- Dawn-Updates
Chrome 137
- Texturansicht für die externeTextur-Bindung verwenden
- Puffer ohne Angabe von Offsets und Größe kopieren
- „WGSL 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
- Einschränkungen des Kompatibilitätsmodus aufheben
- 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 für filterbare Texturtypen vom Typ „float“ als mischbar
- Dawn-Updates
Chrome 133
- Zusätzliche Vertex-Formate „unorm8x4-bgra“ und „1-component“
- Anfrage unbekannter Limits mit undefiniertem Wert zulassen
- Änderungen der WGSL-Ausrichtungsregeln
- WGSL-Leistungssteigerungen mit „discard“
- „VideoFrame displaySize“ für externe Texturen verwenden
- Bilder mit nicht standardmäßigen Ausrichtungen mit „copyExternalImageToTexture“ verarbeiten
- Verbesserung der Entwicklerfreundlichkeit
- Kompatibilitätsmodus mit „featureLevel“ aktivieren
- Bereinigung experimenteller Untergruppenfunktionen
- Entfernung 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
- Filterung von Einschränkungen für Sampler auf Texturen
- Erweiterte Untergruppen-Tests
- 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
- Entfernung 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
- Tests mit Untergruppen
- Entfernung der Einstellung der Tiefenverzerrung für Linien und Punkte
- Ausblenden der nicht erfassten Fehlerwarnung in den Entwicklertools, wenn „preventDefault“ verwendet wird
- WGSL-Interpolation zuerst und dann Sampling
- Dawn-Updates
Chrome 127
- Experimentelle Unterstützung für OpenGL ES unter Android
- GPUAdapter-Attribut „info“
- Verbesserungen der WebAssembly-Interoperabilität
- Verbesserte Fehler für Befehlscodierer
- Dawn-Updates
Chrome 126
- Erhöhung des Limits „maxTextureArrayLayers“
- Optimierung des Pufferuploads für das Vulkan-Backend
- 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
- Syntaxzucker 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 für WebGPU unter Android
- Verwendung von DXC anstelle von FXC für die Shader-Kompilierung unter Windows
- Zeitstempelabfragen in Compute- und Render-Passes
- Standardmäßige Einstiegspunkte für Shader-Module
- Unterstützung von „display-p3“ als GPUExternalTexture-Farbraum
- Informationen zu Speicher-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 entfernen
- Bindungsgruppe entfernen
- 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