Nieuw in WebGPU (Chrome 117)

François Beaufort
François Beaufort

Hoekpuntbuffer verwijderen

Als je null in plaats van een GPUBuffer doorgeeft aan setVertexBuffer() op GPURenderPassEncoder of GPURenderBundleEncoder, kun je een eerder ingestelde hoekpuntbuffer in een bepaalde sleuf ongedaan maken. Ga naar probleem dawn:1675.

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

Bindgroep uitzetten

Als je null doorgeeft in plaats van een GPUBindGroup aan setBindGroup() op GPURenderPassEncoder of GPURenderBundleEncoder, kun je een eerder ingestelde bindgroep in een bepaalde sleuf ongedaan maken. Ga naar probleem dawn:1675.

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

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

Fouten bij het maken van een asynchrone pijplijn negeren als het apparaat kwijt is

De methoden createComputePipelineAsync() en createRenderPipelineAsync() van GPUDevice retourneren een belofte die wordt opgelost als het maken van de pijplijn is afgerond. Vanaf nu worden fouten bij het maken van asynchrone pijplijnen onderdrukt als de GPUDevice lost is, zodat verloren apparaten zo veel mogelijk lijken te werken. Zie dawn issue:1874.

Updates voor het maken van SPIR-V-shadermodules

Als je een SPIR-V-shadermodule maakt met createShaderModule(), wordt er nu een TypeError gegenereerd, tenzij je Chrome uitvoert met de vlag 'Unsafe WebGPU Support', omdat SPIR-V geen deel uitmaakt van de WebGPU-specificatie. Vóór deze wijziging werd er een GPUInternalError gegenereerd als je SPIR-V gebruikte. Ga naar change chromium:4711911.

De ontwikkelaarservaring verbeteren

De validatiefoutmelding voor bindingen van bindgroepindelingen in het vertex-shader is verbeterd voor lees-/schrijftopslagbuffer en alleen-schrijftopslagtextuurbindingen. Ga naar issue dawn:1883.

Pipelines voor caching met automatisch gegenereerde indeling

Pijplijnen die zijn gemaakt met createRenderPipeline({ layout: "auto" }), maken nu gebruik van cachingmechanismen in Chrome. Dit betekent dat deze pijplijnen efficiënter worden gemaakt en minder geheugen gebruiken. Ga naar issue dawn:1933.

Updates voor Dawn

De wgpu::RequestAdapterOptionsBackendType maakt nu deel uit van wgpu::RequestAdapterOptions, zodat apps makkelijker een specifieke backend kunnen aanvragen als ze een adapter krijgen. Bekijk het volgende voorbeeld en issue 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. Ga naar wijzigingsdageraad:142465.

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

Dit zijn maar enkele van de belangrijkste punten. Neem de uitgebreide lijst met doorvoeringen door.

Wat is er nieuw in WebGPU?

Een lijst met alles wat is behandeld in de serie Nieuw in WebGPU.

Chrome 155-156

Chrome 153-154

Chrome 151-152

Chrome 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

Chrome 127

Chrome 126

Chrome 125

Chrome 124

Chrome 123

Chrome 122

Chrome 121

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Chrome 115

Chrome 114

Chrome 113