Wat is er nieuw in WebGPU (Chrome 140)

François Beaufort
François Beaufort

Gepubliceerd: 27 augustus 2025

Apparaatverzoeken verbruiken adapter

Volgens de WebGPU-specificatie wordt een adapter gemarkeerd als "verbruikt" na een succesvolle apparaataanvraag. Bijgevolg zullen alle volgende requestDevice() -aanroepen die dezelfde adapter gebruiken, nu resulteren in een afgewezen promise. Voorheen retourneerden deze aanroepen een apparaat dat bij de aanmaak verloren was gegaan. Zie probleem 415825174 .

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

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

Afkorting voor het gebruik van textuur waar textuurweergave wordt gebruikt

Een GPUTexture kan nu direct worden gebruikt als GPUBindingResource om de shader bloot te stellen voor binding. Het kan ook worden gebruikt als GPURenderPassColorAttachment view , GPURenderPassColorAttachment resolveTarget en GPURenderPassDepthStencilAttachment view voor verbeterde ergonomie. Dit biedt een eenvoudigere aanpak dan het gebruik van een GPUTextureView om een ​​standaardweergave te verkrijgen. Zie probleem 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 gesampled met textureSampleLevel() voor consistentie met 2D-texturen. Hiermee kunt u een 1D-textuur uit een vertex-shader bemonsteren, wat voorheen alleen mogelijk was vanuit een fragment-shader met textureSample() . Zie issue 382514673 .

Verouder het gebruik van bgra8unorm-alleen-lezen-opslagtextuur

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

GPUAdapter isFallbackAdapter-kenmerk verwijderen

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

Dawn-updates

De functie wgpuInstanceGetWGSLLanguageFeatures() wordt gebruikt om een ​​lijst op te halen met WGSL-taalfuncties die door de instantie worden ondersteund. Voorheen retourneerde deze een WGPUStatus waarde. Deze functie is bijgewerkt zodat deze geen waarde retourneert, omdat deze niet kan mislukken. Zie probleem 429178774 .

De functie wgpuSurfacePresent() retourneert nu een WGPUStatus fout als het oppervlak geen huidige textuur heeft. Zie probleem 425930323

Met de nieuwe functie wgpu::InstanceFeatureName::MultipleDevicesPerAdapter kunnen adapters meerdere apparaten aanmaken zonder dat ze worden "verbruikt". Zie probleem 415825174 .

Met de schakelaar dump_shaders_on_failure kunt u shaders alleen bij een storing dumpen voor foutopsporing . Dit is uitsluitend van toepassing op D3-backends, hoewel uitbreiding naar andere backends in de toekomst mogelijk is. Zie probleem 429187478 .

Er zijn meerdere wijzigingen aangebracht aan de Vulkan-backend om de overhead bij het indienen van renderpassen te verminderen, met name voor verbeterde prestaties op mobiele GPU's. Bijvoorbeeld: het cachen van VkFramebuffers .

Dit behandelt slechts enkele van de belangrijkste hoogtepunten. Bekijk de volledige lijst met commits .

Wat is er nieuw in WebGPU

Een lijst met alles wat in de serie Wat is er nieuw in WebGPU is behandeld.

Chroom 140

Chroom 139

Chroom 138

Chroom 137

Chroom 136

Chroom 135

Chroom 134

Chroom 133

Chroom 132

Chroom 131

Chroom 130

Chroom 129

Chroom 128

Chroom 127

Chroom 126

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