Il numero di funzionalità di WebGPU potrebbe sembrare poco chiaro questa volta, ma i principali progressi sono dietro l'angolo. Le prossime versioni includeranno caratteristiche come DP4a, texture di archiviazione di sola lettura e lettura/scrittura, controllo dell'aspetto di profondità e stencil separati, rendering su sezioni di texture 3D e miglioramenti alla compilazione dello Shadr.
Nel frattempo, scopri come potenziare il test del tuo modello Web AI con il supporto di WebGPU e WebGL in Chrome headless e perché WebGPU potrebbe essere disattivato o non funzionante in Chrome.
Espandi la copertura con la modalità di compatibilità (funzionalità in fase di sviluppo)
WebGPU si allinea bene con le moderne API grafiche (Vulkan, Metal e D3D12), ma alcuni dispositivi non supportano queste API. Questo limita l'accessibilità di WebGPU, in particolare su piattaforme come Windows (il 31% degli utenti di Chrome non dispone di D3D11.1+), Android (il 23% non dispone di Vulkan 1.1 o versioni successive) e ChromeOS (l'adozione di Vulkan è in aumento).
Il team di Chrome sta lavorando a una modalità di compatibilità in WebGPU per risolvere questo problema, offrendo una versione leggermente limitata di WebGPU che funzioni su API meno recenti come D3D11 e OpenGL ES. In questo modo, amplierai la potenziale base utenti di WebGPU.
È importante sottolineare che le applicazioni che utilizzano la modalità di compatibilità rimangono applicazioni WebGPU completamente valide. I dispositivi che non supportano la modalità di compatibilità passeranno automaticamente all'adattatore WebGPU principale, garantendo un'ampia usabilità.
Consulta la proposta e il commento se hai domande.
Aumenta il limite maxVertexAttributes
Il numero massimo di attributi in totale nei buffer durante la creazione di una GPURenderPipeline è 16 per impostazione predefinita. Ora è possibile richiederne un massimo di 30 utilizzando il limite maxVertexAttributes, se supportato. Vedi l'esempio seguente e issue dawn:2223.
const adapter = await navigator.gpu.requestAdapter();
if (adapter.limits.maxVertexAttributes < 30) {
// When the desired limit isn't supported, take action to either fall back to
// a code path that does not require the higher limit or notify the user that
// their device does not meet minimum requirements.
}
// Request highest limit of max vertex attributes.
const device = await adapter.requestDevice({
requiredLimits: { maxVertexAttributes: 30 },
});
Aggiornamenti da Dawn
È stato aggiunto un nuovo pulsante di attivazione/disattivazione dell'istanza denominato "expose_wgsl_experimental_features" per fare in modo che l'istanza mostri solo le funzionalità WGSL sperimentali, ma non quelle non sicure, in modo che le funzionalità sperimentali sicure di WGSL possano essere utilizzate senza dover attivare l'opzione di attivazione/disattivazione "allow_unsafe_apis". Vedi issue dawn:2260.
I miglioramenti recenti alle associazioni Dawn per Node.js includono quanto segue:
GPUSupportedFeatures::getSize()
aggiunto all'account.- È stata implementata l'inattività di
GPUAdapter
. - La funzionalità
GPUInternalError
è ora segnalata correttamente per i dispositivi. - Ora gli attributi sono numerabili.
Vengono trattati solo alcuni dei punti salienti. Consulta l'elenco completo dei commit.
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