Wat is er nieuw in WebGPU (Chrome 145)?

François Beaufort
François Beaufort

Gepubliceerd: 28 januari 2026

WGSL subgroep_uniformiteit extensie

De WGSL-taalextensie subgroup_uniformity wijzigt de reikwijdte van de uniformiteitsanalyse voor ingebouwde functies van subgroepen en quads, zodat deze op subgroepniveau plaatsvindt (in plaats van op werkgroepniveau). Deze functie zorgt ervoor dat subgroepfunctionaliteit in meer gevallen als uniform wordt beschouwd, wat de gebruiksvriendelijkheid voor ontwikkelaars verbetert en de kans verkleint dat uniformiteitscontroles volledig worden uitgeschakeld. Een praktisch gevolg hiervan is dat meer waarden als subgroep-uniform worden gezien, zoals de recent toegevoegde ingebouwde waarde subgroup_id .

Deze taalextensie kan worden gedetecteerd met behulp van navigator.gpu.wgslLanguageFeatures . Zie het volgende voorbeeld en de intentie om deze te implementeren .

if (!navigator.gpu.wgslLanguageFeatures.has("subgroup_uniformity")) {
  throw new Error(`WGSL subgroup uniformity is not available`);
}

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroups")) {
  throw new Error("Subgroups support is not available");
}
const device = await adapter.requestDevice({ requiredFeatures: ["subgroups"] });

const shaderModule = device.createShaderModule({ code: `
  enable s<ubgroups;
  
  @gro>up(0) @binding(0) varstorage, read_write non_uniform: i32;

  fn main() {
    if (non_uniform == 42) {
      _ = subgroupElect();
    }
  }`,
}); // WGSL error: subgroupElect must only be called from subgroup uniform control flow.

Experimentele synchrone buffermapping in workers

Om mogelijke manieren te onderzoeken om wrijving tussen WebGPU en applicatiecode te verminderen, onderzoekt het Chrome-team synchrone buffermapping binnen workers. Als onderdeel van dit onderzoek is een nieuwe experimentele mapSync() -methode voor GPUBuffer ontwikkeld. Deze methode, die alleen beschikbaar is voor workers, werkt vergelijkbaar met mapAsync() .

Deze functie is experimenteel en uw feedback is belangrijk om te bepalen of deze zal worden voorgesteld voor standaardisatie. Om het uit te proberen, start u Chrome met de schakeloptie --enable-features=WebGPUMapSyncOnWorkers en geeft u feedback over het nut en de impact ervan. Zie het volgende codefragment om te beginnen.

// Create a GPU buffer.
const buffer = device.createBuffer({
  size: 42,
  usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ,
});

// Map buffer synchronously when possible.
if ("mapSync" in GPUBuffer.prototype) {
  buffer.mapSync(GPUMapMode.READ);
} else {
  // Awaiting allows other code to run, which can cause application logic issues.
  await buffer.mapAsync(GPUMapMode.READ);
}

Dawn-updates

De functie wgpu::FeatureName::R8UnormStorage is niet langer beschikbaar. Deze is vervangen door wgpu::FeatureName::TextureFormatTier1 , die deze nu vervangt. Zie probleem 472926167 .

De functie wgpu::FeatureName::Snorm16TextureFormats is verwijderd. De mogelijkheden ervan, met uitzondering van Resolve, worden nu grotendeels gedekt door wgpu::FeatureName::TextureFormatsTier1 . Zie probleem 465347942 .

Dagelijkse releases van binaire bestanden (naast Emdawnwebgpu) worden nu gebouwd op GitHub en zijn beschikbaar in google/dawn releases . Ze worden aangeboden als een 'best-effort'-service en zijn niet ondertekend of gegarandeerd door Google of het Dawn-team.

Ondersteuning wgpu::ExternalTexture is toegevoegd aan Emdawnwebgpu. Houd er rekening mee dat deze alleen vanuit JavaScript-code kan worden geïmporteerd (bijvoorbeeld EM_ASM ), aangezien constructie in C/C++ niet mogelijk is vanwege de vereiste van een JavaScript-object zoals HTMLVideoElement of VideoFrame . Zie issue 462477379 en SpotTests.cpp voor voorbeeldcode.

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