Ondersteunde WGSL-taalextensies
Het wgslLanguageFeatures lid van het GPU object bevat de namen van ondersteunde WGSL -taalextensies . Ondersteunde WGSL-taalextensies worden automatisch ingeschakeld, dus u hoeft er niet expliciet een aan te vragen. Deze lijst is momenteel leeg, maar u kunt er in de toekomst veel verwachten (bijvoorbeeld do-while loops ). Zie issue dawn:1777 .
if (navigator.gpu.wgslLanguageFeatures?.has("unknown-feature")) {
// Use unknown-feature in WGSL shader code.
}
Experimentele ondersteuning voor Direct3D 11
Het Chromium-team werkt aan het toevoegen van WebGPU-ondersteuning voor Direct3D 11. Je kunt er nu lokaal mee experimenteren door Chrome op Windows te draaien met de opdrachtregelopties --enable-unsafe-webgpu --use-webgpu-adapter=d3d11 . Zie issue dawn:1705 .
Standaard discrete GPU op netstroom
Op macOS-apparaten met twee GPU's wordt, als requestAdapter() wordt aangeroepen zonder een powerPreference optie, de afzonderlijke GPU geretourneerd wanneer het apparaat van de gebruiker op netstroom is aangesloten. Anders wordt de geïntegreerde GPU geretourneerd. Zie wijziging 4499307 .
Verbetering van de ontwikkelaarservaring
Nieuwe DevTools-waarschuwingen
Als de depth wordt gebruikt in een GPUExtend3DDict wordt er een waarschuwing weergegeven in de DevTools Console, omdat de juiste sleutel depthOrArrayLayers is. Zie probleem chromium:1440900 .
Er wordt ook een waarschuwing gegenereerd als een GPUBlendComponent een mix van expliciete en standaardleden bevat. Zie issue dawn:1785 .
Hoewel zero-size dispatches en draws geldig zijn, moedigt een waarschuwing ontwikkelaars aan om deze waar mogelijk te vermijden. Zie issue dawn:1786 .
Betere foutmeldingen
Er wordt nu een verbeterde foutmelding weergegeven bij gebruik van een GPUCommandEncoder als finish() al is aangeroepen. Zie issue dawn:1736 .
Bij het indienen van opdrachtbuffers met vernietigde objecten, zijn de labels van de opdrachtbuffers die in submit() werden gebruikt nu zichtbaar in de foutmelding. Zie issue dawn:1747 .
Het ongeldige deel van de dieptestencilstatus wordt nu gespecificeerd in de foutmelding bij het valideren depthStencil . Zie issue dawn:1735 .
De validatiefoutmelding minBindingSize vermeldt nu de groep en het nummer van de binding die de validatie niet heeft doorstaan, evenals de buffer. Zie issue dawn:1604 .
Foutmeldingen die door de mapAsync() -methode op een GPUBuffer object worden geretourneerd, zijn verbeterd om ontwikkelaars te helpen bij het debuggen. Zie hieronder een voorbeeld en issue chromium:1431622 .
// Create a GPU buffer and map it.
const descriptor = { size: 0, usage: GPUBufferUsage.MAP_READ };
const buffer = device.createBuffer(descriptor);
buffer.mapAsync(GPUMapMode.READ);
// Before it has been mapped, request another mapping.
try {
await buffer.mapAsync(GPUMapMode.READ);
} catch (error) {
// New! Error message tells you mapping is already pending.
console.warn(error.message);
}
Labels in macOS-foutopsporingstools
Met de debug-schakelaar use_user_defined_labels_in_backend kunt u objectlabels doorsturen naar de backend, zodat ze zichtbaar zijn in platformspecifieke debugtools zoals RenderDoc, PIX of Instruments. Vanaf nu is er een betere debug-ervaring op macOS wanneer u deze optie inschakelt voor debuggen . Zie issue dawn:1784

Log HLSL als de compilatie mislukt
Met de debug-schakelaar dump_shaders kunt u invoer-WGSL-shaders en vertaalde backend-shaders loggen. Vanaf nu, wanneer u deze optie inschakelt voor debuggen , wordt de HLSL gedumpt als de compilatie mislukt. Zie issue dawn:1681
Dawn-updates
Vertexbuffer ongedaan maken
Door nullptr in plaats van een wgpu::Buffer door te geven aan SetVertexBuffer() op wgpu::RenderPassEncoder of wgpu::RenderBundleEncoder kunt u een eerder ingestelde vertexbuffer in een bepaalde sleuf ongedaan maken. Zie issue dawn:1675 .
// Set vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.SetVertexBuffer(0, nullptr);
Tijdelijke bijlagen
U kunt bijlagen maken waarmee renderpass-bewerkingen in het tegelgeheugen kunnen blijven, waardoor VRAM-verkeer en mogelijk ook VRAM-toewijzing voor de texturen worden vermeden door het gebruik van wgpu::TextureUsage::TransientAttachment in te stellen. Deze functie wordt alleen ondersteund voor Metal en Vulkan. Zie issue dawn: 1695 .
wgpu::TextureDescriptor desc;
desc.format = wgpu::TextureFormat::RGBA8Unorm;
desc.size = {1, 1, 1};
desc.usage = wgpu::TextureUsage::RenderAttachment |
wgpu::TextureUsage::TransientAttachment;
auto transientTexture = device.CreateTexture(&desc);
// You can now create views from the texture to serve as transient
// attachments, e.g. as color attachments in a render pipeline.
Bouwen zonder depot_tools
Met de nieuwe CMake-optie DAWN_FETCH_DEPENDENCIES kunt u Dawn-afhankelijkheden ophalen met behulp van een Python-script dat DEPS-bestanden leest, in plaats van de installatie van depot_tools te vereisen voor alle projecten die ervan afhankelijk zijn. Zie wijziging 131750 .
Wat is er nieuw in WebGPU
Een lijst met alles wat in de serie Wat is er nieuw in WebGPU is behandeld.
Chroom 143
Chroom 142
Chroom 141
- Tint IR voltooid
- Analyse van gehele getallen in de WGSL-compiler
- SPIR-V 1.4-update voor Vulkan-backend
- Dawn-updates
Chroom 140
- Apparaatverzoeken verbruiken adapter
- Afkorting voor het gebruik van textuur waar textuurweergave wordt gebruikt
- WGSL textureSampleLevel ondersteunt 1D-texturen
- Verouder het gebruik van bgra8unorm-alleen-lezen-opslagtextuur
- GPUAdapter isFallbackAdapter-kenmerk verwijderen
- Dawn-updates
Chroom 139
- 3D-textuurondersteuning voor gecomprimeerde BC- en ASTC-formaten
- Nieuwe functie 'kernfuncties en beperkingen'
- Origin-proefversie voor WebGPU-compatibiliteitsmodus
- Dawn-updates
Chroom 138
- Afkorting voor het gebruik van buffer als bindingsbron
- Wijzigingen in de groottevereisten voor buffers die bij het aanmaken in kaart zijn gebracht
- Architectuurrapport voor recente GPU's
- Verouder GPUAdapter isFallbackAdapter-kenmerk
- Dawn-updates
Chroom 137
- Gebruik textuurweergave voor externe textuurbinding
- Buffers kopiëren zonder offsets en grootte op te geven
- WGSL-werkgroepUniformLoad met behulp van een pointer naar atomaire
- GPUAdapterInfo powerPreference-kenmerk
- Verwijder GPURequestAdapterOptions compatibilityMode-kenmerk
- Dawn-updates
Chroom 136
- GPUAdapterInfo isFallbackAdapter-kenmerk
- Verbeteringen in de shadercompilatietijd op D3D12
- Canvasafbeeldingen opslaan en kopiëren
- Beperkingen voor de liftcompatibiliteitsmodus
- Dawn-updates
Chroom 135
- Toestaan om pijplijnlay-out te maken met een lay-out voor null-bindgroepen
- Laat viewports zich uitstrekken voorbij de grenzen van de renderdoelen
- Gemakkelijkere toegang tot de experimentele compatibiliteitsmodus op Android
- Verwijder maxInterStageShaderComponents-limiet
- Dawn-updates
Chroom 134
- Verbeter machine learning-workloads met subgroepen
- Verwijder float-filterbare textuurtypen die ondersteuning bieden als mengbaar
- Dawn-updates
Chroom 133
- Extra unorm8x4-bgra en 1-component vertex-formaten
- Toestaan dat onbekende limieten worden aangevraagd met een ongedefinieerde waarde
- Wijzigingen in de WGSL-uitlijningsregels
- WGSL-prestatiewinst met weggooien
- Gebruik VideoFrame displaySize voor externe texturen
- Verwerk afbeeldingen met niet-standaardoriëntaties met copyExternalImageToTexture
- Verbetering van de ontwikkelaarservaring
- Compatibiliteitsmodus inschakelen met featureLevel
- Opschonen van experimentele subgroepkenmerken
- Verouder maxInterStageShaderComponents-limiet
- Dawn-updates
Chroom 132
- Gebruik van textuurweergave
- 32-bits float-texturen mengen
- GPUDevice adapterInfo-kenmerk
- Het configureren van de canvascontext met een ongeldige indeling levert een JavaScript-fout op
- Filteren van samplerbeperkingen op texturen
- Uitgebreide subgroepsexperimenten
- Verbetering van de ontwikkelaarservaring
- Experimentele ondersteuning voor 16-bits genormaliseerde textuurformaten
- Dawn-updates
Chroom 131
- Clipafstanden in WGSL
- GPUCanvasContext getConfiguration()
- Punt- en lijnprimitieven mogen geen dieptebias hebben
- Inclusief ingebouwde scanfuncties voor subgroepen
- Experimentele ondersteuning voor multi-draw indirect
- Shadermodule-compilatieoptie strikte wiskunde
- GPUAdapter requestAdapterInfo() verwijderen
- Dawn-updates
Chroom 130
- Menging van dubbele bronnen
- Verbeteringen in de shadercompilatietijd op Metal
- Veroudering van GPUAdapter requestAdapterInfo()
- Dawn-updates
Chroom 129
Chroom 128
- Experimenteren met subgroepen
- Diepteafwijking voor lijnen en punten afschaffen
- Verberg niet-vastgelegde fout DevTools-waarschuwing als preventDefault
- WGSL interpoleert eerst de bemonstering en ofwel
- Dawn-updates
Chroom 127
- Experimentele ondersteuning voor OpenGL ES op Android
- GPUAdapter info-kenmerk
- Verbeteringen in WebAssembly-interoperabiliteit
- Verbeterde opdrachtencoderfouten
- Dawn-updates
Chroom 126
- Verhoog maxTextureArrayLayers-limiet
- Bufferuploadoptimalisatie voor Vulkan-backend
- Verbeteringen in de compilatietijd van shaders
- Ingediende opdrachtbuffers moeten uniek zijn
- Dawn-updates
Chroom 125
Chroom 124
- Alleen-lezen en lees-schrijf opslagtexturen
- Ondersteuning van servicemedewerkers en gedeelde werknemers
- Nieuwe adapterinformatie-attributen
- Bugfixes
- Dawn-updates
Chroom 123
- Ondersteuning voor ingebouwde DP4a-functies in WGSL
- Onbeperkte pointerparameters in WGSL
- Syntaxissuiker voor het derefereren van composieten in WGSL
- Afzonderlijke alleen-lezenstatus 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 voor WebGPU op Android
- Gebruik DXC in plaats van FXC voor shadercompilatie op Windows
- Tijdstempelquery's in compute- en renderpassen
- Standaard toegangspunten tot shadermodules
- Ondersteuning display-p3 als GPUExternalTexture-kleurruimte
- Geheugenstapels info
- Dawn-updates
Chroom 120
- Ondersteuning voor 16-bits drijvende-kommawaarden in WGSL
- Verleg de grenzen
- Wijzigingen in de dieptestencilstatus
- Adapterinformatie-updates
- Kwantificering van tijdstempelquery's
- Voorjaarsschoonmaakfuncties
Chroom 119
- Filterbare 32-bits float-texturen
- unorm10-10-10-2 vertex-formaat
- 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
- Vertexbuffer ongedaan maken
- Bindgroep ongedaan maken
- Fouten bij het maken van een asynchrone pijplijn uitschakelen wanneer het apparaat verloren gaat
- Updates voor het maken van SPIR-V shadermodules
- Verbetering van de ontwikkelaarservaring
- Caching-pipelines met automatisch gegenereerde lay-out
- Dawn-updates
Chroom 116
- WebCodecs-integratie
- Verloren apparaat geretourneerd door GPUAdapter
requestDevice() - Zorg ervoor dat de videoweergave vloeiend blijft als
importExternalTexture()wordt aangeroepen - Specificatieconformiteit
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 115
- Ondersteunde WGSL-taalextensies
- Experimentele ondersteuning voor Direct3D 11
- Standaard discrete GPU op netstroom
- Verbetering van de ontwikkelaarservaring
- Dawn-updates
Chroom 114
- JavaScript optimaliseren
- getCurrentTexture() op een niet-geconfigureerd canvas genereert InvalidStateError
- WGSL-updates
- Dawn-updates