Novità di WebGPU (Chrome 138)

François Beaufort
François Beaufort

Pubblicato il giorno 17 giugno 2025

Abbreviazione per l'utilizzo del buffer come risorsa di binding

Gli sviluppatori ora possono utilizzare un GPUBuffer direttamente come un GPUBindingResource da esporre allo shader per il binding. In questo modo, è coerente con altri tipi di binding e ancora più semplice da utilizzare rispetto a un GPUBufferBinding quando sia la dimensione sia l'offset utilizzano i valori predefiniti. Consulta il 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 },
  ],
});

Modifiche ai requisiti di dimensione per i buffer mappati al momento della creazione

La creazione di un buffer con mappedAtCreation impostato su true ora genera un RangeError se size non è un multiplo di 4. In precedenza, questo veniva applicato solo con un GPUValidationError. Consulta il problema 405883445.

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

Report sull'architettura per le GPU recenti

Le GPU più recenti di Nvidia e AMD ora segnalano la loro architettura in GPUAdapterInfo rispettivamente come "blackwell" e "rdna4", oltre ad alcune altre piccole aggiunte agli elenchi di architetture GPU. Consulta il problema 417202748.

Deprecazione dell'attributo GPUAdapter isFallbackAdapter

L'attributo isFallbackAdapter di GPUAdapter è deprecato. Viene sostituito dall'attributo isFallbackAdapter di GPUAdapterInfo che è stato introdotto in Chrome 136. Consulta la richiesta di deprecazione.

Aggiornamenti di Dawn

Emscripten è supportato in Dawn GLFW per le build CMake, consentendo agli sviluppatori di semplificare ulteriormente il codice dell'app multipiattaforma WebGPU quando utilizzano Emdawnwebgpu, che implementa l'ultima versione standardizzata di webgpu.h sull'API del browser. Consulta la modifica dawn:242894.

Per una guida completa, consulta la documentazione aggiornata Creare un'app con WebGPU.

Una porta "remota" di Emdawnwebgpu è ora inclusa nelle release dei pacchetti. Uno snapshot di questa porta è incluso in Emscripten 4.0.10+, che ora supporta le porte ospitate esternamente. Il passaggio a Emdawnwebgpu ora richiede una singola modifica del flag da emcc -sUSE_WEBGPU a emcc --use-port=emdawnwebgpu. Consulta le richieste di pull di Emscripten n. 24303, n. 24220 e la modifica di Dawn n. 243214.

Questo articolo tratta solo alcuni dei punti salienti principali. Consulta l'elenco esaustivo dei commit.

Novità di WebGPU

Un elenco di tutti gli argomenti trattati nella serie Novità di WebGPU.

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