Nieuw in WebGPU (Chrome 141)

François Beaufort
François Beaufort

Gepubliceerd: 24 september 2025

Tint IR afgerond

Een langlopend project (meer dan 2,5 jaar) om de prestaties van de interne functies van Tint, de WGSL-compiler, te verbeteren, is afgerond. Er is een tussenliggende representatie (IR) in de backend ingevoegd tussen de huidige abstracte syntaxisboom (AST) en de backend-codegeneratoren. Door de introductie van de IR kon het Chrome-team alle AST-transformaties verwijderen en ze opnieuw maken als IR-transformaties. Vanwege architectonische verschillen zijn deze aanzienlijk sneller. De interne werking van Tint is op sommige platforms tot 7 keer sneller geworden door deze wijzigingen.

Deze nieuwe IR biedt aanzienlijke mogelijkheden voor geavanceerde, grootschalige shaderanalyse en -transformatie. Dit levert niet alleen aanzienlijke prestatiewinst op, maar ook een soepeler pad voor Chrome om in de toekomst spannende nieuwe WebGPU-functies te leveren.

Vanaf deze mijlpaal werken alle backend-codegeneratoren vanuit de IR-weergave, zijn alle AST-transformaties verwijderd en is alle AST-ondersteuningscode om de transformaties uit te voeren verwijderd.

Als onderdeel van de verbetering van de IR is de SPIR-V-frontend (die door apps wordt gebruikt om SPIR-V naar WGSL te converteren) geconverteerd van het genereren van een AST-weergave naar het rechtstreeks genereren naar IR. Deze verbetering introduceert ook langverwachte functies zoals ondersteuning voor float 16 in de SPIR-V-frontend.

Analyse van gehele getallenbereik in WGSL-compiler

Het Chrome-team rolt geleidelijk een nieuwe analyse van gehele getallen uit voor Tint, de compiler voor WebGPU-shader-taal. Analyse van gehele-getalbereik schat de minimum- en maximumwaarden die een gehele-getalvariabele kan aannemen tijdens de uitvoering van het programma, zonder het programma daadwerkelijk uit te voeren.

Deze functie is bedoeld om de efficiëntie te verbeteren door de noodzaak voor dure grenzencontroles te verminderen. De functie wordt binnenkort standaard aangezet op alle platforms. Ga naar probleem 348701956.

SPIR-V 1.4-update voor Vulkan-backend

Ondersteuning voor SPIR-V 1.4 wordt uitgerold waar beschikbaar op Android- en ChromeOS-apparaten. Met deze update kan Tint, de WGSL-compiler, gebruikmaken van nieuwe SPIR-V-functies, versoepelingen en nieuwe instructies voor efficiëntere codegeneratie in bepaalde scenario's bij het compileren van Vulkan-shaders. Ga naar probleem 427717267.

Updates voor Dawn

De gestandaardiseerde header webgpu.h, die de kern van de WebGPU C API definieert, wordt nu eindelijk als stabiel beschouwd. Deze stabiliteit is specifiek van toepassing op de kern-API die upstream is gedefinieerd, exclusief implementatie-extensies (bijvoorbeeld van Dawn of Emdawnwebgpu). Het is dus het beste om de webgpu.h te gebruiken die wordt geleverd door de exacte implementatie waaraan je koppelt. Hoewel de header stabiel is, kun je nog steeds onbedoelde verschillen tussen implementaties tegenkomen, omdat we doorgaan met het oplossen van bugs en de compatibiliteit in het ecosysteem. Als je dat doet, meld je een bug.

Dankzij externe bijdrager William Candillon vind je nu vooraf gemaakte Dawn-binaire bestanden als artefacten in GitHub Actions. Dit zijn onder andere statische .lib-bestanden voor Android, een .XCFramework-bundel voor Apple en alle vereiste headerbestanden. Bekijk Dawn PR #39 en een voorbeeld van de artefacten.

Dit zijn maar enkele van de belangrijkste punten. Neem de uitgebreide lijst met doorvoeringen door.

Wat is er nieuw in WebGPU?

Een lijst met alles wat is behandeld in de serie Nieuw in WebGPU.

Chrome 155-156

Chrome 153-154

Chrome 151-152

Chrome 149-150

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