JavaScript optimieren
Chromium beschleunigte die Leistung der WebGPU für GPUComputePassEncoder
-, GPURenderPassEncoder
- und GPUCommandEncoder
-Methoden, indem der Aufwand für Aufrufe von generierten Code in der V8-JavaScript-Engine an C++-Handler in der Blink-Rendering-Engine reduziert wurde. Siehe issue chromium:1417558.
Die folgende MikroBenchmark zeigt, dass die CPU-Zeit von JavaScript-Aufrufen von etwa 0,5 ms pro 10.000 Aufrufen auf etwa 0,3 ms pro 10.000 Aufrufen gesunken ist. Das entspricht einer Verbesserung von 40 %.
<ph type="x-smartling-placeholder">![Screenshot des Chrome-Benchmark-Diagramms mit Verbesserungen für schnelle Anrufe](https://developer.chrome.com/static/blog/new-in-webgpu-114/image/screenshot-chrome-browse-13d0e671b3d3c.png?authuser=6&hl=de)
getCurrentTexture() gibt bei nicht konfiguriertem Canvas "Ungültiger Statusfehler" aus
Wenn die Methode GPUCanvasContext
getCurrentTexture()
auf einem nicht konfigurierten Canvas aufgerufen wird, wird gemäß der WebGPU-Spezifikation jetzt InvalidStateError
anstelle von OperationError
ausgelöst. Siehe issue chromium:1424461.
const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError
WGSL-Updates
Nullgefü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)
Updates zur Morgendämmerung
Fehlermeldungen verbessern
Deskriptorlabels für ungültige Objekte werden nicht mehr gelöscht, sodass Sie sie in Fehlermeldungen sehen können. Siehe issue 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 issue dawn:1761.
Das ist neu bei WebGPU
Eine Liste aller behandelten Themen der Reihe What's New in WebGPU.
Chrome 127
- Experimentelle Unterstützung von OpenGL ES unter Android
- GPUAdapter-Infoattribut
- Verbesserungen der WebAssembly-Interoperabilität
- Verbesserte Fehler des Befehls-Encoders
- Updates zur Morgendämmerung
Chrome 126
- Limit für maxTextureArrayLayers erhöhen
- Optimierung des Zwischenspeicheruploads für das Vulkan-Backend
- Schnellere Kompilierungszeiten
- Gesendete Befehlspuffer müssen eindeutig sein
- Updates zur Morgendämmerung
Chrome 125
Chrome 124
- Schreibgeschützte Speichertexturen
- Unterstützung für Service Worker und Shared 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
- „Zucker“-Syntax für die Dereferenzierung von zusammengesetzten Daten in WGSL
- Separater schreibgeschützter Status für Schablonen- und Tiefenaspekte
- Updates zur Morgendämmerung
Chrome 122
- Reichweite mit dem Kompatibilitätsmodus erhöhen (Funktion in Entwicklung)
- maxVertexAttributes-Limit erhöhen
- Updates zur Morgendämmerung
Chrome 121
- Unterstützung von WebGPU unter Android
- DXC anstelle von FXC für die Shader-Kompilierung unter Windows verwenden
- Zeitstempelabfragen in Rechen- und Renderingdurchläufen
- Standardeinstiegspunkte für Shader-Module
- Unterstützung von „display-p3“ als GPUExternalTexture-Farbraum
- Informationen zu Arbeitsspeicher-Heaps
- Updates zur Morgendämmerung
Chrome 120
- Unterstützung von 16-Bit-Gleitkommawerten in WGSL
- Gehe an deine Grenzen
- Änderungen am Status der Tiefenschablonen
- Aktualisierung der Adapterinformationen
- Zeitstempelquantisierung von Abfragen
- 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 nicht schreibgeschützte und schreibgeschützte Speichertexturen
- Updates zur Morgendämmerung
Chrome 117
- Vertex-Zwischenspeicher aufheben
- Bindungsgruppe aufheben
- Fehler bei der asynchronen Pipelineerstellung stummschalten, wenn Gerät verloren geht
- Aktualisierungen beim Erstellen von SPIR-V-Shadermodulen
- Entwicklererfahrung verbessern
- Caching-Pipelines mit automatisch generiertem Layout
- Updates zur Morgendämmerung
Chrome 116
- WebCodecs-Integration
- Verlorenes Gerät, das von GPUAdapter
requestDevice()
zurückgegeben wurde - Videowiedergabe ruckelfrei, wenn
importExternalTexture()
aufgerufen wird - Konformität mit Spezifikationen
- Entwicklererfahrung verbessern
- Updates zur Morgendämmerung
Chrome 115
- Unterstützte WGSL-Spracherweiterungen
- Experimentelle Unterstützung für Direct3D 11
- Separate GPU standardmäßig im Netzbetrieb nutzen
- Entwicklererfahrung verbessern
- Updates zur Morgendämmerung
Chrome 114
- JavaScript-Code optimieren
- getCurrentTexture() bei nicht konfiguriertem Canvas löst InvalidStateError aus
- Wichtige Informationen von WGSL
- Updates zur Morgendämmerung