Novedades de WebGPU (Chrome 138)

François Beaufort
François Beaufort

Publicado el 17 de junio de 2025

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

Ahora los desarrolladores pueden usar un GPUBuffer directamente como GPUBindingResource para exponerlo al sombreador para la vinculación. Esto lo hace coherente con otros tipos de vinculación y aún más fácil de usar que un GPUBufferBinding cuando el tamaño y 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 en true 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 GPUs más recientes de Nvidia y AMD ahora informan su arquitectura en GPUAdapterInfo como "blackwell" y "rdna4", respectivamente, así como algunas otras adiciones menores a las listas de arquitectura de GPU. Consulta el problema 417202748.

Baja el atributo isFallbackAdapter de GPUAdapter

El atributo isFallbackAdapter de GPUAdapter está obsoleto. Se reemplaza 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 la app multiplataforma de WebGPU cuando usan Emdawnwebgpu, que implementa el webgpu.h estandarizado más reciente a través de la API del navegador. Consulta el cambio dawn:242894.

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

Ahora se incluye un puerto "remoto" de Emdawnwebgpu en las versiones del paquete. Se incluye una instantánea de este puerto en Emscripten 4.0.10+, que ahora admite puertos alojados externamente. Cambiar a Emdawnwebgpu ahora es un cambio de marca único de emcc -sUSE_WEBGPU a emcc --use-port=emdawnwebgpu. Consulta Emscripten PR #24303, #24220 y Dawn CL 243214.

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 abarcó en la serie Novedades de WebGPU.

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