Wat is er nieuw in WebGPU (Chrome 122)

François Beaufort
François Beaufort

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.

Diagram van de WebGPU-compatibiliteitsmodus.
WebGPU-compatibiliteitsmodus vergroot bereik.

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

Chroom 130

Chroom 129

Chroom 128

Chroom 127

Chroom 126

Chroom 125

Chroom 124

Chroom 123

Chroom 122

Chroom 121

Chroom 120

Chroom 119

Chroom 118

Chroom 117

Chroom 116

Chroom 115

Chroom 114

Chroom 113