Verhoog de maxTextureArrayLayers-limiet
De maximaal toegestane waarde voor de diepte of het aantal lagen van een 2D-textuur is standaard 256. Het is nu mogelijk om maximaal 2048 aan te vragen met behulp van de maxTextureArrayLayers- limiet, indien ondersteund. Zie het volgende voorbeeld en nummer 42241514 .
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxTextureArrayLayers < 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 texture array layers attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxTextureArrayLayers: 2048 }
});
Bufferuploadoptimalisatie voor Vulkan-backend
Er is nu een snel pad beschikbaar bij het aanroepen van de writeBuffer() -methode van de GPUQueue voor Vulkan-backend. De gegevens kunnen nu rechtstreeks naar de bestemmingsbuffer worden geschreven, waardoor een extra kopie en synchronisatie niet meer nodig is. Deze optimalisatie vermindert het geheugenverkeer dat nodig is om gegevens naar de GPU te uploaden.
De snelle padoptimalisatie vereist dat het geheugen van de buffer zichtbaar is voor de host en dat er geen GPU-bewerkingen in behandeling zijn. Zie uitgave 42242084 .
Verbeteringen in de compilatietijd van Shader
Het Chrome-team verbetert de efficiëntie van Tint , de compiler van de WebGPU-shadertaal. Tint wijzigt momenteel de abstracte syntaxisboom (AST) van de shadercode meerdere keren voordat machinecode wordt gegenereerd, een proces dat op sommige platforms veel hulpbronnen vergt. Om dit te optimaliseren wordt een nieuwe tussenweergave (IR) geïntroduceerd, samen met opnieuw ontworpen backends die hiervan gebruik maken. Deze wijziging is bedoeld om de shader-compilatie te versnellen.
Deze verbeteringen, die al toegankelijk zijn op Android, worden geleidelijk uitgebreid naar ChromeOS-apparaten die WebGPU ondersteunen met de Vulkan-backend. Zie uitgave 42250751 .
Ingezonden opdrachtbuffers moeten uniek zijn
Elke GPUCommandBuffer die met de methode submit()
naar de GPUQueue wordt verzonden, moet uniek zijn, anders wordt er een validatiefout gegenereerd. Dit was een specificatiefout . Zie uitgave 42241492 .
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
const commandEncoder = device.createCommandEncoder();
const commandBuffer = commandEncoder.finish();
device.queue.submit([commandBuffer, commandBuffer]);
// ⚠️ Validation fails because command buffers are not unique.
Dawn-updates
De C++-wrapper webgpu_cpp.h heeft nu alleen headers, wat het gebruik ervan vereenvoudigt en een eenvoudigere integratie met alternatieve C++-wrappers mogelijk maakt. Zie uitgave 40195122 .
De webgpu.h C API legt niet langer het idee van Swapchain-objecten bloot. Deze wijziging moet nauw aansluiten bij de JavaScript-API. De interne configuratie wordt nu uitgevoerd via de Configure()
methode van het nieuwe wgpu::Surface
object, dat onderhevig is aan toekomstige wijzigingen. Bekijk een voorbeeld in de documentatie Een app bouwen met WebGPU . Zie uitgave 42241264 .
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 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