Novedades de WebGPU (Chrome 138)

François Beaufort
François Beaufort

Publicado: 17 de junio de 2025

Abreviatura para usar el búfer como recurso de vinculación

Ahora los desarrolladores pueden usar un GPUBuffer directamente como un GPUBindingResource para exponerlo al sombreador para la vinculación. Esto lo hace coherente con otros tipos de vinculación y aún más simple de usar que un GPUBufferBinding cuando tanto el tamaño como el desplazamiento usan valores predeterminados. Consulta el problema 419223794.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTextureView },
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer }, // Same as { buffer: myBuffer }
    { binding: 4, resource: { buffer: myOtherBuffer, offset: 42 },
  ],
});

Cambios en los requisitos de tamaño para los búferes asignados en la creación

Crear un búfer con mappedAtCreation establecido como verdadero ahora arroja un RangeError si size no es un múltiplo de 4. Anteriormente, esto solo se aplicaba con un GPUValidationError. Consulta el problema 405883445.

myDevice.createBuffer({
  mappedAtCreation: true,
  size: 42,
  usage: GPUBufferUsage.STORAGE,
});
// Throws RangeError

Informe de arquitectura para GPUs recientes

Las GPU más recientes de Nvidia y AMD ahora informan su arquitectura en GPUAdapterInfo como "blackwell" y "rdna4", respectivamente, además de algunas otras incorporaciones menores a las listas de arquitectura de GPU. Consulta el problema 417202748.

Se dejó de usar el atributo isFallbackAdapter de GPUAdapter

El atributo isFallbackAdapter de GPUAdapter está obsoleto. Se reemplazó por el atributo isFallbackAdapter de GPUAdapterInfo que se introdujo en Chrome 136. Consulta la intención de baja.

Actualizaciones de Dawn

Emscripten es compatible con Dawn GLFW para compilaciones de CMake, lo que permite a los desarrolladores simplificar aún más el código de su app multiplataforma de WebGPU cuando usan Emdawnwebgpu, que implementa el archivo webgpu.h estandarizado más reciente a través de la API del navegador. Consulta change dawn:242894.

Para obtener una guía completa, consulta la documentación actualizada sobre cómo compilar una app con WebGPU.

Ahora se incluye un puerto "remoto" de Emdawnwebgpu en las versiones de paquetes. En Emscripten 4.0.10 y versiones posteriores, se incluye una instantánea de este puerto, que ahora admite puertos alojados de forma externa. Cambiar a Emdawnwebgpu ahora es un solo cambio de la marca de emcc -sUSE_WEBGPU a emcc --use-port=emdawnwebgpu. Consulta las PR #24303 y #24220 de Emscripten, y la CL 243214 de Dawn.

Esto solo abarca algunos de los aspectos destacados clave. Consulta la lista exhaustiva de confirmaciones.

Novedades de WebGPU

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

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