Novità di WebGPU (Chrome® 122)

François Beaufort
François Beaufort

Il numero di funzionalità WebGPU potrebbe sembrare un po' leggero questa volta, ma i principali progressi sono dietro l'angolo. Le prossime release includeranno funzionalità come DP4a, texture di archiviazione di sola lettura e lettura/scrittura, controllo dell'aspetto separato per lo stencil e la profondità, il rendering delle sezioni di texture 3D e miglioramenti alla compilazione dello streamr.

Nel frattempo, scopri come ottimizzare il test del modello di IA web con il supporto di WebGPU e WebGL in Chrome headless e perché WebGPU potrebbe essere disattivato o non funzionare in Chrome.

Espandere la copertura con la modalità di compatibilità (funzionalità in fase di sviluppo)

WebGPU si allinea bene alle API grafiche moderne (Vulkan, Metal e D3D12), ma alcuni dispositivi non li supportano. Ciò limita l'accessibilità di WebGPU, soprattutto su piattaforme come Windows (il 31% degli utenti di Chrome non dispone di D3D11.1+), Android (il 23% non dispone di Vulkan 1.1+) e ChromeOS (adozione di Vulkan in crescita).

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 funziona su API meno recenti come D3D11 e OpenGL ES. Questo espanderà 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à utilizzeranno automaticamente l'adattatore WebGPU principale per impostazione predefinita, garantendo un'ampia usabilità.

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

Per eventuali domande, consulta la proposta e il commento.

Aumenta il limite maxVertexAttributes

Per impostazione predefinita, il numero massimo totale di attributi nei buffer durante la creazione di una GPURenderPipeline è 16. Ora è possibile effettuare richieste fino a 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 all'alba

Un nuovo pulsante di attivazione/disattivazione dell'istanza chiamato "expose_wgsl_experimental_features" è stata aggiunta per fare in modo che l'istanza esponga solo le funzionalità WGSL sperimentali ma non quelle non sicure, in modo che le funzionalità WGSL sperimentali sicure possano essere utilizzate senza la necessità di abilitare il ruolo "allow_unsafe_apis" pulsante di attivazione/disattivazione. Vedi problema dawn:2260.

I miglioramenti recenti alle associazioni Dawn per Node.js includono quanto segue:

  • GPUSupportedFeatures::getSize() è stato aggiunto.
  • L'inattività di GPUAdapter è stata implementata.
  • Ora GPUInternalError è segnalato correttamente per i dispositivi.
  • Ora gli attributi sono enumerabili.

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