Novedades de WebGPU (Chrome 151-152)

François Beaufort
François Beaufort

Publicación: 12 de agosto de 2026

Control del tamaño del subgrupo

Establecer el tamaño del subgrupo de una canalización de procesamiento con el atributo @subgroup_size en los sombreadores de procesamiento de WGSL es beneficioso para optimizar el rendimiento del sombreador de procesamiento cuando se usan operaciones de subgrupo en plataformas específicas, como para cargas de trabajo de IA.

Para usar el control de tamaño de subgrupo en WGSL, verifica si la función "subgroup-size-control" está disponible en GPUAdapter y, luego, solicita un GPUDevice con esta función habilitada. En tu código WGSL, agrega enable subgroups; y enable subgroup_size_control; de forma explícita. Luego, puedes declarar el atributo @subgroup_size para garantizar que el sombreador de procesamiento se ejecute con un tamaño de subgrupo específico (que debe ser una potencia de 2) dentro del rango de subgroupMinSize y subgroupMaxSize proporcionado por el adaptador, y establecer @builtin(subgroup_size) para que coincida. Sin este atributo, el controlador de la GPU selecciona el tamaño del subgrupo de forma dinámica y permanece desconocido antes de la ejecución.

Consulta el siguiente ejemplo y la intención de lanzamiento.

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

Agradecemos especialmente a nuestros socios de Intel por su excelente trabajo.

OperationError para errores de validación de setImmediates

Para alinearse con la especificación de WebGPU, los errores de validación de dataOffset o size en setImmediates arrojan un OperationError en lugar de un RangeError. Consulta el CL chromium:7977566.

Actualizaciones de Dawn

La compatibilidad experimental con el formato de vértice snorm10-10-10-2 está disponible detrás del botón de activación "allow_unsafe_apis". El formato wgpu::VertexFormat::Snorm10_10_10_2 representa un vector de cuatro componentes que incluye números enteros normalizados con signo de 10 bits para los canales RGB y un componente alfa de 2 bits. Consulta el problema dawn:536160421.

OpenGL ahora admite adjuntos transitorios para formatos de texturas que contienen profundidad o estencil. Consulta el problema dawn:462577182.

Esto solo abarca algunos de los aspectos más destacados. Consulta la lista exhaustiva de confirmaciones.

Novedades de WebGPU

Una lista de todo lo que se abordó en la serie Novedades de WebGPU

Chrome 153-154

Chrome 151 y 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