Wat is er nieuw in WebGPU (Chrome 147-148)?

François Beaufort
François Beaufort

Gepubliceerd: 22 april 2026

WGSL lineaire_indexeringsextensie

De WGSL-taalextensie linear_indexing maakt het mogelijk om de volgende ingebouwde waarden in werkgroepen te gebruiken:

  • global_invocation_index : De lineaire positie van de huidige aanroep binnen het totale compute shader-raster. Een u32 invoerwaarde berekend op basis van de global_invocation_id , workgroup_size en num_workgroups .

  • workgroup_index : De lineaire positie van de huidige werkgroep binnen het algehele compute shader-raster. Een u32 inputwaarde waarbij alle aanroepen binnen dezelfde werkgroep dezelfde index delen.

De extensie pakt de handmatige indexberekening vanuit 3D-coördinaten aan, een repetitief en foutgevoelig proces. Door deze logica in de taal zelf te integreren, verbetert WGSL de leesbaarheid van de code en worden veelvoorkomende, repetitieve berekeningen geëlimineerd.

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("linear_indexing")) {
  throw new Error(`WGSL global_invocation_index and workgroup_index built-in values are not available`);
}

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

const shaderModule = device.createShaderModule({ code: `
  requires linear_indexing;

  override x : u32;
  override y : u32;
  override z : u32;

  @compute @workgroup_size(x, y, z)
  fn main(@builtin(workgroup_index) wg_index : u32,
          @builtin(global_invocation_index) g_index : u32) {

  // The workgroup_index built-in value is equivalent to:
  // (@builtin(workgroup_id).x +
  // (@builtin(workgroup_id).y * @builtin(num_workgroups).x) +
  // (@builtin(workgroup_id).z * @builtin(num_workgroups).x * @builtin(num_workgroups).y))

  // The global_invocation_index built-in value is equivalent to:
  // (@builtin(global_invocation_id).x +
  // (@builtin(global_invocation_id).y * x * @builtin(num_workgroups).x) +
  // (@builtin(global_invocation_id).z * x * @builtin(num_workgroups).x * y * @builtin(num_workgroups).y))
  }`,
});

WebGPU op Linux NVIDIA

Na de eerdere uitrol van WebGPU op Linux wordt de ondersteuning uitgebreid met moderne NVIDIA-stuurprogramma's (2024-05) op Wayland. Zie probleem 442791440 .

Dawn-updates

De wgpu::FeatureName::AdapterPropertiesDRM , die alleen beschikbaar is op Vulkan, stelt u in staat om Linux DRM-informatie over de adapter op te vragen. Zie Dawn CL 299575 .

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