Wat is er nieuw in WebGPU (Chrome 117)

François Beaufort
François Beaufort

Schakel hoekpuntbuffer uit

Als u null in plaats van een GPUBuffer doorgeeft aan setVertexBuffer() op GPURenderPassEncoder of GPURenderBundleEncoder 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, null);

Schakel de bindingsgroep uit

Als u null in plaats van een GPUBindGroup doorgeeft aan setBindGroup() op GPURenderPassEncoder of GPURenderBundleEncoder kunt u een eerder ingestelde bindgroep in een bepaald slot uitschakelen. Zie uitgave Dawn:1675 .

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

Stil fouten bij het maken van asynchrone pijplijnen wanneer het apparaat verloren gaat

De methoden createComputePipelineAsync() en createRenderPipelineAsync() van GPUDevice retourneren een belofte die wordt opgelost wanneer het maken van de pijplijn is voltooid. Vanaf nu worden fouten bij het maken van een asynchrone pijplijn tot zwijgen gebracht wanneer het GPUDevice lost gaat, zodat het lijkt alsof verloren apparaten zoveel mogelijk blijven functioneren. Zie Dawn-uitgave: 1874 .

Updates voor het maken van SPIR-V-shadermodules

Het maken van een SPIR-V- shadermodule met createShaderModule() genereert nu een TypeError, tenzij u Chrome uitvoert met de vlag "Onveilige WebGPU-ondersteuning", aangezien SPIR-V geen deel uitmaakt van de WebGPU-specificatie. Vóór deze wijziging zou het gebruik van SPIR-V ervoor zorgen dat in plaats daarvan een GPUInternalError werd gegenereerd. Zie wijziging chroom:4711911 .

Verbetering van de ontwikkelaarservaring

Het validatiefoutbericht voor bindingen van bindgroepindelingen in vertex-shader is verbeterd voor opslagbuffer voor lezen/schrijven en opslagtextuurbindingen voor alleen schrijven. Zie uitgave Dawn:1883 .

Caching van pijplijnen met automatisch gegenereerde lay-out

Pijplijnen gemaakt met createRenderPipeline({ layout: "auto" }) profiteren nu van caching-mechanismen in Chrome. Het betekent dat deze pijplijnen efficiënter zullen worden gecreëerd en minder geheugen zullen gebruiken. Zie uitgave Dawn:1933 .

Dawn-updates

De wgpu::RequestAdapterOptionsBackendType is nu onderdeel van wgpu::RequestAdapterOptions om het voor applicaties gemakkelijker te maken om een ​​bepaalde backend aan te vragen wanneer ze een adapter aanschaffen. Zie het volgende voorbeeld en uitgave Dawn:1875 .

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

Er zijn verschillende aanvullende methoden geïmplementeerd voor Node.js. Zie wijziging dageraad:142465 .

De webgpu.h C API heeft het type voor booleaanse waarden gewijzigd van stdbool in WGPUBool , wat een uint32_t is. Deze wijziging is aangebracht om ervoor te zorgen dat de API een gelijkwaardige ABI heeft in C en C++.

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