Het aantal WebGPU-functies lijkt deze keer misschien wat beperkt, maar grote verbeteringen staan voor de deur! Volgende releases zullen functies bevatten zoals DP4a, alleen-lezen en lezen-schrijven opslagtexturen, afzonderlijke stencil- en diepte-aspectcontrole, rendering naar 3D-textuurplakken en verbeteringen in de shader-compilatie.
Ontdek in de tussentijd hoe u uw Web AI-modeltesten een boost kunt geven met WebGPU- en WebGL-ondersteuning in Headless Chrome en waarom WebGPU mogelijk is uitgeschakeld of niet werkt in Chrome .
Vergroot het bereik met de compatibiliteitsmodus (functie in ontwikkeling)
WebGPU sluit goed aan bij moderne grafische API's (Vulkan, Metal en D3D12), maar sommige apparaten hebben daar geen ondersteuning voor. Dit beperkt de toegankelijkheid van WebGPU, vooral op platforms als Windows (31% van de Chrome-gebruikers mist D3D11.1+), Android (23% mist Vulkan 1.1+) en ChromeOS (de adoptie van Vulkan neemt toe).
Het Chrome-team werkt aan een compatibiliteitsmodus in WebGPU om dit aan te pakken door een enigszins beperkte versie van WebGPU aan te bieden die werkt op oudere API's zoals D3D11 en OpenGL ES. Dit zal de potentiële gebruikersbasis van WebGPU uitbreiden.
Belangrijk is dat applicaties die de compatibiliteitsmodus gebruiken, volledig geldige WebGPU-applicaties blijven. Apparaten zonder ondersteuning voor de compatibiliteitsmodus zullen naadloos standaard overschakelen naar de kern-WebGPU-adapter, waardoor een brede bruikbaarheid wordt gegarandeerd.
Bekijk het voorstel en reageer als je vragen hebt.
Verhoog de maxVertexAttributes-limiet
Het maximale aantal kenmerken in totaal voor buffers bij het maken van een GPURenderPipeline is standaard 16. Het is nu mogelijk om maximaal 30 aanvragen aan te vragen met behulp van de maxVertexAttributes- limiet, indien ondersteund. Zie het volgende voorbeeld en geef Dawn:2223 op .
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
Dawn-updates
Er is een nieuwe instantieschakelaar met de naam "expose_wgsl_experimental_features" toegevoegd om ervoor te zorgen dat de instantie alleen de experimentele WGSL-functies blootlegt, maar niet de onveilige, zodat veilige experimentele WGSL-functies kunnen worden gebruikt zonder de noodzaak om de schakelaar "allow_unsafe_apis" in te schakelen. Zie uitgave Dawn:2260 .
Recente verbeteringen aan de Dawn-bindingen voor Node.js omvatten het volgende:
-
GPUSupportedFeatures::getSize()
is toegevoegd. -
GPUAdapter
veroudering is geïmplementeerd. -
GPUInternalError
wordt nu correct gerapporteerd voor apparaten. - Attributen zijn nu opsombaar.
Dit behandelt slechts enkele van de belangrijkste hoogtepunten. Bekijk de uitgebreide lijst met commits .
Wat is er nieuw in WebGPU
Een lijst met alles wat aan bod komt in de What's New in WebGPU -serie.
Chroom 131
- Clipafstanden in WGSL
- GPUCanvasContext getConfiguration()
- Punt- en lijnprimitieven mogen geen diepteafwijking hebben
- Inclusief ingebouwde scanfuncties voor subgroepen
- Experimentele ondersteuning voor indirecte meertrekking
- Compilatieoptie Shader-module strikte wiskunde
- GPUAdapter requestAdapterInfo() verwijderen
- Dawn-updates
Chroom 130
- Mengen met dubbele bron
- Verbeteringen in de compilatietijd van Shader op Metal
- Beëindiging van GPUAdapter requestAdapterInfo()
- Dawn-updates
Chroom 129
- HDR-ondersteuning met canvas-tone mapping-modus
- Uitgebreide ondersteuning voor subgroepen
- Dawn-updates
Chroom 128
- Experimenteren met subgroepen
- Beëindig het instellen van diepteafwijking voor lijnen en punten
- Niet-opgevangen fout verbergen DevTools-waarschuwing als preventieDefault
- WGSL interpoleert eerst de bemonstering en een van beide
- Dawn-updates
Chroom 127
- Experimentele ondersteuning voor OpenGL ES op Android
- GPUAdapter info-kenmerk
- Verbeteringen in de interoperabiliteit van WebAssembly
- Verbeterde opdracht-encoderfouten
- Dawn-updates
Chroom 126
- Verhoog de maxTextureArrayLayers-limiet
- Bufferuploadoptimalisatie voor Vulkan-backend
- Verbeteringen in de compilatietijd van Shader
- Ingezonden opdrachtbuffers moeten uniek zijn
- Dawn-updates
Chroom 125
Chroom 124
- Alleen-lezen en lezen-schrijven opslagtexturen
- Ondersteuning van servicemedewerkers en gedeelde medewerkers
- Nieuwe attributen voor adapterinformatie
- Bugfixes
- Dawn-updates
Chroom 123
- DP4a ingebouwde functies ondersteunen in WGSL
- Onbeperkte pointerparameters in WGSL
- Syntaxissuiker voor het derefereren van composieten in WGSL
- Afzonderlijke alleen-lezen-status voor stencil- en diepteaspecten
- Dawn-updates
Chroom 122
- Vergroot het bereik met de compatibiliteitsmodus (functie in ontwikkeling)
- Verhoog de maxVertexAttributes-limiet
- Dawn-updates
Chroom 121
- Ondersteuning WebGPU op Android
- Gebruik DXC in plaats van FXC voor shader-compilatie op Windows
- Tijdstempelquery's in reken- en renderpassen
- Standaardingangspunten voor shadermodules
- Ondersteuning display-p3 als GPUExternalTexture-kleurruimte
- Informatie over geheugenheaps
- Dawn-updates
Chroom 120
- Ondersteuning voor 16-bit drijvende-kommawaarden in WGSL
- Verleg de grenzen
- Veranderingen in de staat van de diepte-stencil
- Updates van adapterinformatie
- Kwantisering van tijdstempelquery's
- Lenteschoonmaakfuncties
Chroom 119
- Filterbare 32-bit float-texturen
- unorm10-10-10-2 hoekpuntformaat
- rgb10a2uint textuurformaat
- Dawn-updates
Chroom 118
- HTMLImageElement- en ImageData-ondersteuning in
copyExternalImageToTexture()
- Experimentele ondersteuning voor lees-schrijf- en alleen-lezen opslagtextuur
- Dawn-updates
Chroom 117
- Schakel hoekpuntbuffer uit
- Schakel de bindingsgroep uit
- Stil fouten bij het maken van asynchrone pijplijnen wanneer het apparaat verloren gaat
- Updates voor het maken van SPIR-V-shadermodules
- Verbetering van de ontwikkelaarservaring
- Caching van pijplijnen met automatisch gegenereerde lay-out
- Dawn-updates
Chroom 116
- WebCodecs-integratie
- Verloren apparaat geretourneerd door GPUAdapter
requestDevice()
- Houd het afspelen van video soepel als
importExternalTexture()
wordt aangeroepen - Spec-conformiteit
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 115
- Ondersteunde WGSL-taalextensies
- Experimentele ondersteuning voor Direct3D 11
- Krijg standaard een discrete GPU op wisselstroom
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 114
- Optimaliseer JavaScript
- getCurrentTexture() op een niet-geconfigureerd canvas genereert InvalidStateError
- WGSL-updates
- Dawn-updates