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 van 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 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