Ondersteunde WGSL-taalextensies
Het lid wgslLanguageFeatures
van het GPU
object vermeldt de namen van ondersteunde WGSL- taalextensies . Ondersteunde WGSL-taalextensies worden automatisch ingeschakeld, daarom hoeft u deze niet expliciet aan te vragen. Deze lijst is momenteel leeg, maar je kunt er in de toekomst veel van verwachten (bijvoorbeeld do-while loops
). Zie uitgave 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 uit te voeren met de opdrachtregelvlaggen --enable-unsafe-webgpu --use-webgpu-adapter=d3d11
. Zie uitgave Dawn:1705 .
Krijg standaard een discrete GPU op wisselstroom
Als requestAdapter()
op macOS-apparaten met dubbele GPU wordt aangeroepen zonder de optie powerPreference
, wordt 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, aangezien de juiste sleutel depthOrArrayLayers
is. Zie uitgave chroom:1440900 .
Er wordt ook een waarschuwing weergegeven als een GPUBlendComponent
een combinatie van expliciete en standaard leden heeft. Zie uitgave Dawn:1785 .
Hoewel zero-size verzendingen en trekkingen geldig zijn, moedigt een waarschuwing ontwikkelaars aan om deze waar mogelijk te vermijden. Zie uitgave Dawn:1786 .
Betere foutmeldingen
Er wordt nu een verbeterd foutbericht weergegeven bij gebruik van een GPUCommandEncoder
als finish()
al is aangeroepen. Zie uitgave Dawn:1736 .
Bij het indienen van opdrachtbuffers met vernietigde objecten zijn de labels van de opdrachtbuffers die werden gebruikt in submit()
nu zichtbaar in de foutmelding. Zie uitgave Dawn:1747 .
Het ongeldige deel van de diepte-stencilstatus wordt nu gespecificeerd in het foutbericht bij het valideren van depthStencil
. Zie uitgave Dawn:1735 .
Het minBindingSize
validatiefoutbericht rapporteert nu de groep en het nummer van de binding waarbij de validatie is mislukt, evenals de buffer. Zie uitgave Dawn:1604 .
Foutberichten die door de methode mapAsync()
op een GPUBuffer
-object worden geretourneerd, zijn verbeterd om ontwikkelaars te helpen bij het opsporen van fouten. Zie een voorbeeld hieronder en geef chroom:1431622 op .
// 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 foutopsporingstools zoals RenderDoc, PIX of Instruments. Vanaf nu wordt er een betere foutopsporingservaring geboden op macOS wanneer u dit inschakelt voor foutopsporing . Zie uitgave Dawn:1784
Registreer HLSL als de compilatie mislukt
Met de debug-schakelaar dump_shaders
kunt u ingevoerde WGSL-shaders en vertaalde backend-shaders loggen. Vanaf nu, wanneer u debuggen inschakelt, wordt de HLSL gedumpt als de compilatie mislukt. Zie uitgave Dawn:1681
Dawn-updates
Schakel hoekpuntbuffer uit
Door nullptr
in plaats van een wgpu::Buffer
door te geven aan SetVertexBuffer()
op wgpu::RenderPassEncoder
of wgpu::RenderBundleEncoder
kunt u een eerder ingestelde hoekpuntbuffer in een bepaald slot uitschakelen. Zie uitgave 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 render-pass-bewerkingen in het tegelgeheugen kunnen blijven, waardoor VRAM-verkeer wordt vermeden en mogelijk VRAM-toewijzing voor de texturen wordt vermeden door het gebruik van wgpu::TextureUsage::TransientAttachment
in te stellen. Deze functie wordt alleen ondersteund voor Metal en Vulkan. Zie uitgave dageraad: 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 een nieuwe DAWN_FETCH_DEPENDENCIES
CMake-optie kun je Dawn-afhankelijkheden ophalen met behulp van een Python-script dat DEPS-bestanden leest in plaats van dat de installatie van depot_tools
vereist is voor alle projecten die ervan afhankelijk zijn. Zie wijziging 131750 .
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