Nouveautés de WebGPU (Chrome 151-152)

François Beaufort
François Beaufort

Publié le 12 août 2026

Contrôle de la taille des sous-groupes

Définir la taille du sous-groupe d'un pipeline de calcul à l'aide de l'attribut @subgroup_size dans les nuanceurs de calcul WGSL est utile pour optimiser les performances des nuanceurs de calcul lorsque vous utilisez des opérations de sous-groupe sur des plates-formes spécifiques, par exemple pour les charges de travail d'IA.

Pour utiliser le contrôle de la taille des sous-groupes dans WGSL, vérifiez si la fonctionnalité "subgroup-size-control" est disponible sur le GPUAdapter, puis demandez un GPUDevice avec cette fonctionnalité activée. Dans votre code WGSL, ajoutez explicitement enable subgroups; et enable subgroup_size_control;. Vous pouvez ensuite déclarer l'attribut @subgroup_size pour garantir que le nuanceur de calcul s'exécute à une taille de sous-groupe spécifique (qui doit être une puissance de 2) dans la plage de subgroupMinSize et subgroupMaxSize fournie par l'adaptateur, en définissant @builtin(subgroup_size) pour qu'il corresponde. Sans cet attribut, la taille du sous-groupe est sélectionnée de manière dynamique par le pilote GPU et reste inconnue avant l'exécution.

Consultez l'exemple suivant et l'intention d'expédition.

const adapter = await navigator.gpu.requestAdapter();
if (!adapter.features.has("subgroup-size-control")) {
  throw new Error("Subgroup size control support is not available");
}
// Explicitly request subgroup size control support.
const device = await adapter.requestDevice({
  requiredFeatures: ["subgroup-size-control"],
});

const shaderModule = device.createShaderModule({ code: `
  enable subgroups;
  enable subgroup_size_control;

  @subgroup_size(32)
  @compute @workgroup_size(64, 1, 1)
  fn main(@builtin(subgroup_invocation_id) sg_id : u32,
          @builtin(subgroup_size) sg_size : u32) {
     // TODO: Compute shader logic using specific subgroup size.
  }`,
});

Nous remercions tout particulièrement nos partenaires chez Intel pour leur travail exceptionnel.

OperationError pour les échecs de validation setImmediates

Pour s'aligner sur la spécification WebGPU, les échecs de validation pour dataOffset ou size dans setImmediates génèrent une OperationError au lieu d'une RangeError. Consultez CL chromium:7977566.

Nouveautés de l'application Aube

La compatibilité expérimentale avec le format de vertex snorm10-10-10-2 est disponible via le bouton bascule "allow_unsafe_apis". Le format wgpu::VertexFormat::Snorm10_10_10_2 représente un vecteur à quatre composants comportant des entiers normalisés signés de 10 bits pour les canaux RVB et un composant alpha de 2 bits. Consultez le problème dawn:536160421.

OpenGL est désormais compatible avec les pièces jointes temporaires pour les formats de texture contenant de la profondeur ou du stencil. Consultez le problème dawn:462577182.

Il ne s'agit que de quelques-uns des principaux points à retenir. Consultez la liste exhaustive des commits.

Nouveautés de WebGPU

Liste de tous les sujets abordés dans la série Nouveautés de WebGPU.

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