Wat is er nieuw in WebGPU (Chrome 140)

François Beaufort
François Beaufort

Gepubliceerd: 27 augustus 2025

Apparaatverzoeken verbruiken de adapter.

Volgens de WebGPU-specificatie wordt een adapter gemarkeerd als "verbruikt" na een succesvolle apparaataanvraag. Bijgevolg zullen alle daaropvolgende aanroepen requestDevice() met dezelfde adapter nu resulteren in een afgewezen belofte. Voorheen zouden deze aanroepen een apparaat retourneren dat verloren was gegaan bij de aanmaak. Zie probleem 415825174 .

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

await adapter.requestDevice(); // Fails because adapter has been consumed.

Verkorte notatie voor het gebruik van texturen waar de textuurweergave wordt gebruikt.

Een GPUTexture kan nu direct als GPUBindingResource worden gebruikt om aan de shader beschikbaar te stellen voor binding. Het kan ook worden gebruikt als een GPURenderPassColorAttachment- view , een GPURenderPassColorAttachment resolveTarget en een GPURenderPassDepthStencilAttachment view voor verbeterde ergonomie. Dit biedt een eenvoudigere aanpak dan het gebruik van een GPUTextureView om een ​​standaardweergave te verkrijgen. Zie issue 425906323 .

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTexture }, // Same as myTexture.createView()
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer },
  ],
});

WGSL textureSampleLevel ondersteunt 1D-texturen.

1D-texturen kunnen nu worden bemonsterd met textureSampleLevel() voor consistentie met 2D-texturen. Hierdoor kunt u een 1D-textuur bemonsteren vanuit een vertexshader, wat voorheen alleen mogelijk was vanuit een fragmentshader met textureSample() . Zie issue 382514673 .

Het gebruik van de alleen-lezen opslagtextuur bgra8unorm wordt afgekeurd.

Het gebruik van het "bgra8unorm" -formaat met alleen-lezen opslagtexturen is nu verouderd. De WebGPU-specificatie verbiedt dit expliciet, en de eerdere toestemming in Chrome was een bug, aangezien dit formaat bedoeld is voor alleen-schrijven en niet draagbaar is. Zie probleem 427681156 .

Verwijder het isFallbackAdapter-attribuut van GPUAdapter.

Zoals eerder aangekondigd , is het attribuut `GPUAdapter isFallbackAdapter verwijderd. Het is vervangen door het attribuut `GPUAdapterInfo isFallbackAdapter dat is geïntroduceerd in Chrome 136. Zie de intentie om te verwijderen .

Dawn-updates

De functie wgpuInstanceGetWGSLLanguageFeatures() wordt gebruikt om een ​​lijst te verkrijgen van de WGSL-taalfunctionaliteiten die door de instantie worden ondersteund. Voorheen retourneerde deze een WGPUStatus waarde. Dit is aangepast zodat de functie geen waarde meer retourneert, aangezien er geen fouten kunnen optreden. Zie issue 429178774 .

De functie wgpuSurfacePresent() geeft nu een WGPUStatus foutmelding als het oppervlak geen actuele textuur heeft. Zie probleem 425930323.

De nieuwe functie wgpu::InstanceFeatureName::MultipleDevicesPerAdapter stelt adapters in staat om meerdere apparaten te creëren zonder dat deze "verbruikt" worden. Zie probleem 415825174 .

Met de apparaatschakelaar dump_shaders_on_failure kunt u shaders alleen bij een fout dumpen voor debugdoeleinden . Deze functie is exclusief van toepassing op D3-backends, hoewel uitbreiding naar andere backends in de toekomst mogelijk is. Zie issue 429187478 .

Er zijn diverse wijzigingen aangebracht in de Vulkan-backend om de overhead bij het indienen van renderpasses te verminderen, met name voor betere prestaties op mobiele GPU's. Bijvoorbeeld: het cachen van VkFramebuffers .

Dit is slechts een greep uit de belangrijkste hoogtepunten. Bekijk de volledige lijst met commits .

Wat is er nieuw in WebGPU?

Een lijst van alles wat in de serie ' Wat is nieuw in WebGPU' aan bod is gekomen.

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