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 saperne di più, consulta Chrome fornisce WebGPU.

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

Ma non è finita qui.

Utilizza l'origine VideoFrame WebCodecs in importExternalTexture()

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

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

Attiva la funzionalità

Per impostazione predefinita, questa funzionalità non è attiva in Chrome, ma può essere sperimentata in Chrome 113 attivandola esplicitamente. Puoi attivarla localmente attivando il flag "Funzionalità per sviluppatori WebGPU" all'indirizzo chrome://flags/#enable-webgpu-developer-features.

Per attivarla per tutti i visitatori della tua app, è in corso una prova dell'origine, che terminerà l'8 dicembre 2023 in Chrome 118. Per partecipare alla prova, registrati e includi un meta elemento con il token della prova dell'origine nell'intestazione HTML o HTTP. Per saperne di più, consulta il post Iniziare a utilizzare le prove dell'origine.

Codice campione

// 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.

Per giocare, guarda l'esempio sperimentale Caricamento di video con WebCodecs.

Novità di WebGPU

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

Chrome 124

Chrome 123

Chrome 122

Guida introduttiva di Chrome

Chrome 120

Chrome 119

Chrome 118

Chrome 117

Chrome 116

Versione 115 di Chrome

Chrome 114

Chrome 113