Neuigkeiten bei WebGPU (Chrome 141)

François Beaufort
François Beaufort

Veröffentlicht am 24. September 2025

Tint IR abgeschlossen

Ein langjähriges Projekt (über 2,5 Jahre) zur Leistungssteigerung der internen Komponenten von Tint, dem WGSL-Compiler, wurde abgeschlossen. Zwischen dem aktuellen Abstract Syntax Tree (AST) und den Backend-Codegeneratoren wurde eine Intermediate Representation (IR) in das Backend eingefügt. Durch die Einführung der IR konnte das Chrome-Team alle AST-Transformationen entfernen und sie als IR-Transformationen neu erstellen, die aufgrund architektonischer Unterschiede wesentlich schneller sind. Die internen Komponenten von Tint wurden auf einigen Plattformen durch diese Änderungen um bis zu sieben Mal schneller.

Diese neue IR birgt ein erhebliches Potenzial für anspruchsvolle, groß angelegte Shader-Analysen und -Transformationen. Sie verspricht nicht nur erhebliche Leistungssteigerungen, sondern auch einen reibungsloseren Weg für Chrome, in Zukunft aufregende neue WebGPU-Funktionen bereitzustellen.

Ab diesem Meilenstein arbeiten alle Backend-Codegeneratoren mit der IR-Darstellung. Alle AST-Transformationen wurden gelöscht und der gesamte AST-Supportcode zum Ausführen der Transformationen wurde entfernt.

Im Rahmen der IR-Verbesserungen wurde das SPIR-V-Frontend (das von Anwendungen verwendet wird, um SPIR-V in WGSL zu konvertieren) so umgestellt, dass es nicht mehr eine AST-Darstellung, sondern direkt IR generiert. Mit dieser Verbesserung werden auch lang erwartete Funktionen wie die Unterstützung von Float 16 für das SPIR-V-Frontend eingeführt.

Analyse des Ganzzahlbereichs im WGSL-Compiler

Das Chrome-Team führt schrittweise eine neue Analyse des Ganzzahlbereichs für Tint ein, den WebGPU-Shader-Sprachcompiler. Bei der Analyse des Ganzzahlbereichs werden die Mindest- und Höchstwerte geschätzt, die eine Ganzzahlvariable während der Programmausführung annehmen kann, ohne das Programm tatsächlich auszuführen.

Diese Funktion soll die Effizienz verbessern, indem sie die Notwendigkeit kostspieliger Bereichsprüfungen reduziert. Sie wird bald standardmäßig auf allen Plattformen aktiviert. Weitere Informationen finden Sie unter Problem 348701956.

SPIR-V 1.4-Update für das Vulkan-Backend

Die Unterstützung für SPIR-V 1.4 wird auf Android- und ChromeOS-Geräten eingeführt, sofern verfügbar. Mit diesem Update kann Tint, der WGSL-Compiler, neue SPIR-V-Funktionen, -Erleichterungen und -Anweisungen nutzen, um in bestimmten Szenarien beim Kompilieren von Vulkan-Shadern effizienteren Code zu generieren. Weitere Informationen finden Sie unter Problem 427717267.

Dawn-Updates

Der standardisierte webgpu.h-Header, der die WebGPU C API definiert, gilt nun endlich als stabil. Diese Stabilität gilt speziell für die Upstream-definierte Core API, einschließlich Implementierungserweiterungen (z. B. von Dawn oder Emdawnwebgpu). Daher sollten Sie die webgpu.h verwenden, die von der genauen Implementierung bereitgestellt wird, mit der Sie verknüpfen. Obwohl der Header stabil ist, können weiterhin unbeabsichtigte Unterschiede zwischen den Implementierungen auftreten, da wir weiterhin Fehler beheben und die Kompatibilität im gesamten Ökosystem verbessern. Wenn das passiert, melden Sie einen Fehler.

Dank des externen Mitwirkenden William Candillon finden Sie jetzt vorkompilierte Dawn-Binärdateien als Artefakte in GitHub Actions. Dazu gehören statische .lib-Dateien für Android, ein .XCFramework-Bundle für Apple und alle erforderlichen Headerdateien. Weitere Informationen finden Sie unter Dawn PR #39 und ein Beispiel für die Artefakte.

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 147–148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113