Novità di WebGPU (Chrome® 122)

François Beaufort
François Beaufort

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

Diagramma della modalità di compatibilità di WebGPU.
Copertura estesa della modalità di compatibilità WebGPU.

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 vertext 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

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