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 125
- Sottogruppi (funzionalità in fase di sviluppo)
- Eseguire il rendering su una fetta di texture 3D
- Aggiornamenti dell'alba
Chrome 124
- Texture di archiviazione di sola lettura e lettura/scrittura
- Assistenza per i Service worker e i worker condivisi
- Nuovi attributi delle informazioni sull'adattatore
- Correzioni di bug
- Aggiornamenti dell'alba
Chrome 123
- Supporto delle funzioni integrate DP4a in WGSL
- Parametri puntatore senza limitazioni in WGSL
- zucchero della sintassi per dereferenziare i compositi in WGSL
- Stato di sola lettura separato per aspetti stencil e di profondità
- Aggiornamenti dell'alba
Chrome 122
- Espandi la copertura con la modalità di compatibilità (funzionalità in fase di sviluppo)
- Aumenta il limite maxVertexAttributes
- Aggiornamenti dell'alba
Guida introduttiva di Chrome
- Supporto di WebGPU su Android
- Usare DXC anziché FXC per la compilazione dello Shader su Windows
- Query di timestamp nelle tessere di calcolo e rendering
- Punti di contatto predefiniti per i moduli Shadr
- Supporto display-p3 come spazio colore GPUExternalTexture
- Informazioni sui heap di memoria
- Aggiornamenti dell'alba
Chrome 120
- Supporto per valori in virgola mobile a 16 bit in WGSL
- Supera i limiti
- Modifiche allo stato dello stencil di profondità
- Aggiornamenti alle informazioni sull'alimentatore
- Quantizzazione delle query dei timestamp
- Funzionalità per le pulizie di primavera
Chrome 119
- Trame fluttuanti a 32 bit filtrabili
- formato unorm10-10-10-2 vertex
- Formato trama Memcache10a2uint
- Aggiornamenti dell'alba
Chrome 118
- Supporto di HTMLImageElement e ImageData in
copyExternalImageToTexture()
- Supporto sperimentale per la texture di archiviazione in lettura/scrittura e in sola lettura
- Aggiornamenti dell'alba
Chrome 117
- Impostazione del buffer del vertex non impostata
- Annulla impostazione gruppo di associazione
- Silenziare gli errori della creazione di pipeline asincrone in caso di perdita del dispositivo
- Aggiornamenti alla creazione del modulo shabby di SPIR-V
- Migliorare l'esperienza degli sviluppatori
- Memorizzazione nella cache delle pipeline con il layout generato automaticamente
- Aggiornamenti dell'alba
Chrome 116
- Integrazione di WebCodecs
- Dispositivo smarrito restituito da GPUAdapter
requestDevice()
- Mantieni la riproduzione video fluida se viene chiamato
importExternalTexture()
- Conformità alle specifiche
- Migliorare l'esperienza degli sviluppatori
- Aggiornamenti dell'alba
Versione 115 di Chrome
- Estensioni in lingua WGSL supportate
- Supporto sperimentale per Direct3D 11
- Ricevi una GPU discreta per impostazione predefinita tramite alimentazione CA
- Migliorare l'esperienza degli sviluppatori
- Aggiornamenti dell'alba
Chrome 114
- Ottimizzare JavaScript
- getCurrentTexture() su canvas non configurati genera InvalidStateError
- Aggiornamenti di WGSL
- Aggiornamenti dell'alba