Wat is er nieuw in WebGPU (Chrome 146)?

François Beaufort
François Beaufort

Gepubliceerd: 25 februari 2026

Ondersteuning voor WebGPU-compatibiliteitsmodus in OpenGL ES 3.1

Hoewel WebGPU is ontworpen om aan te sluiten op moderne grafische API's zoals Vulkan, Metal en D3D12, beschikken veel gebruikers over oudere hardware die deze standaarden niet ondersteunt. Om deze kloof te overbruggen en brede toegankelijkheid te garanderen, introduceert Chrome een nieuwe optionele functie genaamd compatibiliteitsmodus.

Met deze modus kunt u WebGPU gebruiken met oudere grafische API's zoals OpenGL ES 3.1. Door een iets beperktere subset van de WebGPU-specificatie te gebruiken, zorgt u ervoor dat uw webapplicatie toegankelijk is voor iedereen, van de nieuwste gaming-pc's tot oudere laptops en mobiele apparaten. Hoewel de focus ligt op Android, onderzoekt het team ondersteuning voor andere apparaten, zoals ChromeOS met OpenGL ES 3.1 en Windows met Direct3D 11.

Voor veel webapps kun je de compatibiliteitsmodus inschakelen door featureLevel: "compatibility" mee te geven bij het aanroepen van requestAdapter() . Als je apparaat Core WebGPU ondersteunt, retourneert Chrome een Core-compatibele adapter, maar je webapp weet dat deze binnen de compatibiliteitslimieten moet blijven, tenzij de functie "core-features-and-limits" is ingeschakeld (of alle beschikbare functies zijn ingeschakeld). Complexere applicaties vereisen mogelijk kleine aanpassingen om binnen de beperkingen van de modus te blijven.

// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
const device = await adapter.requestDevice();

Raadpleeg de WebGPU Fundamentals-handleiding voor gedetailleerde informatie over de specifieke architectonische beperkingen van deze modus. Bovendien ondersteunen alle WebGPU-voorbeelden nu de compatibiliteitsmodus. U kunt ook de intentie tot verzending lezen.

Tijdelijke bevestigingen

Je kunt de nieuwe TRANSIENT_ATTACHMENT GPUTextureUsage-vlag gebruiken om geheugenefficiënte attachments te creëren. Hierdoor blijven renderpass-bewerkingen in het tegelgeheugen, wat VRAM-verkeer vermijdt en VRAM-allocatie voor de texturen kan voorkomen.

Door een textuur als transient (of "memoryless") te declareren, weet de GPU dat de inhoud van de textuur slechts tijdelijk nodig is – specifiek, alleen binnen de huidige renderpass. Bovendien hoeft de driver, omdat de inhoud van de textuur na de renderpass wordt verwijderd, er mogelijk helemaal geen VRAM voor toe te wijzen.

Het volgende voorbeeld laat zien hoe je een tijdelijke textuur kunt maken.

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

if ('TRANSIENT_ATTACHMENT' in GPUTextureUsage) {

  const transientTexture = device.createTexture({
    size: [42, 42],
    // The TRANSIENT_ATTACHMENT flag indicates the texture content is temporary,
    // potentially keeping it in fast on-chip memory.
    usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TRANSIENT_ATTACHMENT,
    format: 'rgba8unorm',
  });
}

Bekijk het Hello Triangle MSAA - WebGPU-voorbeeld en de beoogde releasedatum .

WGSL texture_and_sampler_let-extensie

De WGSL-taalextensie texture_and_sampler_let maakt het mogelijk om textuur- of sampler-variabelen toe te wijzen aan een let binnen een WGSL-shader. Deze functie biedt momenteel een alternatief naamgevingsmechanisme en bereidt de weg voor bindless-ondersteuning, waarbij methoden die texturen of samplers retourneren direct in lokale variabelen kunnen worden opgeslagen.

Zie het volgende voorbeeld en de verzendintentie .

@group(0) @binding(0) var tex: texture_2d<f32>;
@group(1) @binding(0) var store : texture_storage_2d<r32float, read_write>;

@fragment fn main() {
    let a = tex;
    var res: vec4f = textureLoad(a, vec2i(1i), 0);

    textureStore(store, vec2i(0i), res);
}

Dawn-updates

De volgende nieuwe limietniveaus zijn beschikbaar:

SPIR-V-validatie is standaard ingeschakeld op Android om een ​​extra beveiligingslaag te bieden en instabiliteit van de driver door onjuiste invoer te voorkomen. Zie probleem 473526182 .

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