Novità di WebGPU (Chrome 113)

François Beaufort
François Beaufort

Dopo anni di sviluppo, il team di Chrome annuncia che la prima release di WebGPU è ora disponibile per impostazione predefinita in Chrome su ChromeOS, macOS e Windows. Per scoprire di più, consulta l'articolo Chrome integra WebGPU.

Abbiamo anche iniziato ad aggiungere documentazione completa per WebGPU su MDN.

E non è finita qui.

Utilizzare l'origine VideoFrame di WebCodecs in importExternalTexture()

WebGPU espone un'API per creare oggetti "texture esterna" opachi da HTMLVideoElement a importExternalTexture(). Puoi utilizzare questi oggetti per campionare i fotogrammi video in modo efficiente, potenzialmente senza copie direttamente dai dati YUV di origine.

Tuttavia, la specifica WebGPU iniziale non consente di creare oggetti GPUExternalTexture dagli oggetti WebCodecs VideoFrame. Questa funzionalità è importante per le app di elaborazione video avanzate che utilizzano già WebCodecs e vogliono integrare WebGPU nella pipeline di elaborazione video. Al momento è in corso una discussione per il problema gpuweb/gpuweb#1380.

Attivare la funzionalità

Per impostazione predefinita, questa funzionalità non è attivata in Chrome, ma è possibile sperimentarla in Chrome 113 attivandola esplicitamente. Puoi attivarla localmente abilitando il flag "Funzionalità per sviluppatori WebGPU" all'indirizzo chrome://flags/#enable-webgpu-developer-features.

Per attivarlo per tutti i visitatori della tua app, è attualmente in corso una prova dell'origine che dovrebbe terminare in Chrome 118 (8 dicembre 2023). Per partecipare alla prova, registrati e includi un elemento meta con il token di prova dell'origine nell'intestazione HTML o HTTP. Per ulteriori informazioni, consulta il post Guida introduttiva ai trial delle origini.

Codice di esempio

// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);

const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.

Dai un'occhiata all'esempio sperimentale Caricamento di video con WebCodecs per provarlo.

Novità di WebGPU

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

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