Nieuw in WebGPU (Chrome 146)

François Beaufort
François Beaufort

Gepubliceerd: 25 februari 2026

Ondersteuning voor de compatibiliteitsmodus van WebGPU op OpenGL ES 3.1

WebGPU is ontworpen om te worden afgestemd op moderne grafische API's zoals Vulkan, Metal en D3D12, maar veel gebruikers hebben oudere hardware die deze standaarden niet ondersteunt. Chrome introduceert een nieuwe optionele functie, de compatibiliteitsmodus, om dit gat te overbruggen en brede toegankelijkheid te garanderen.

In deze modus kun je WebGPU uitvoeren op oudere grafische API's, zoals OpenGL ES 3.1. Door een iets beperktere subset van de WebGPU-specificatie te targeten, zorg je dat je web-app voor iedereen toegankelijk is, van de nieuwste gaming-apparaten tot oudere laptops en mobiele apparaten. Het team is begonnen met Android, maar onderzoekt ook ondersteuning voor andere apparaten, zoals ChromeOS met OpenGL ES 3.1 en Windows met Direct3D 11.

Voor veel web-apps kun je de compatibiliteitsmodus aanzetten door featureLevel: "compatibility" door te geven als je requestAdapter() aanroept. Als je apparaat Core WebGPU ondersteunt, retourneert Chrome een adapter die Core ondersteunt, maar je web-app weet dat deze binnen de compatibiliteitslimieten moet blijven, tenzij de functie "core-features-and-limits" aanstaat (of alle beschikbare functies aanstaan). Voor complexere apps zijn misschien kleine aanpassingen nodig om aan de beperkingen van de modus te voldoen.

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

Ga naar de handleiding WebGPU Fundamentals voor gedetailleerde informatie over de specifieke architectuurbeperkingen van deze modus. Daarnaast ondersteunen alle WebGPU-voorbeelden nu de compatibiliteitsmodus. Je kunt ook de intentie om te verzenden lezen.

Tijdelijke bijlagen

U kunt de nieuwe flag TRANSIENT_ATTACHMENT GPUTextureUsage gebruiken om geheugenefficiënte bijlagen te maken. Hierdoor blijven de bewerkingen voor de weergave-pass in het tegelgeheugen, wat VRAM-verkeer voorkomt en VRAM-toewijzing voor de texturen kan voorkomen.

Als je een textuur als tijdelijk (of 'geheugenloos') declareert, weet de GPU dat deze de content van de textuur maar tijdelijk nodig heeft, namelijk alleen binnen de huidige weergavepass. Omdat de content van de textuur na de weergavefase wordt verwijderd, hoeft de driver er misschien helemaal geen VRAM voor toe te wijzen.

In het volgende voorbeeld staat hoe je een tijdelijke textuur maakt.

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',
  });
}

Ga naar het Hello Triangle MSAA - WebGPU-voorbeeld en het intent to ship.

WGSL-extensie texture_and_sampler_let

Met de WGSL-taalextensie texture_and_sampler_let kun je textuur- of sampler-variabelen toewijzen aan een let binnen een WGSL-shader. Deze functie biedt op dit moment een alternatief naamgevingsmechanisme en bereidt voor op ondersteuning zonder binding, waarbij methoden die texturen of samplers retourneren, rechtstreeks in lokale variabelen kunnen worden opgeslagen.

Neem het volgende voorbeeld en het intent to ship door.

@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);
}

Updates voor Dawn

De volgende nieuwe limietniveaus zijn beschikbaar:

SPIR-V-validatie staat standaard aan op Android om een extra beveiligingslaag te bieden en te voorkomen dat stuurprogramma's instabiel worden door onjuiste invoer. Ga naar probleem 473526182.

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