Ottimizza JavaScript
I collaboratori di Chromium hanno accelerato le prestazioni di WebGPU per i metodi GPUComputePassEncoder
, GPURenderPassEncoder
e GPUCommandEncoder
riducendo l'overhead associato alle chiamate dal codice generato nel motore JavaScript V8 ai gestori C++ nel motore di rendering Blink. Consulta il problema chromium:1417558.
Il seguente microbenchmark mostra il tempo di CPU delle chiamate da JavaScript che diminuisce da circa 0,5 ms ogni 10.000 a circa 0.3 ms per 10.000 disegni, con un miglioramento del 40%.
![Screenshot del grafico di benchmark del browser Chrome che mostra miglioramenti delle chiamate rapide.](https://developer.chrome.google.cn/static/blog/new-in-webgpu-114/image/screenshot-chrome-browse-13d0e671b3d3c.png?authuser=5&hl=it)
getCurrentTexture() su canvas non configurate genera un errore InvalidStateError
La chiamata del metodo getCurrentTexture()
GPUCanvasContext
su un canvas non configurato ora genera InvalidStateError
anziché OperationError
, in base alle specifiche WebGPU. Vedi il problema chromium:1424461.
const context = document.querySelector("canvas").getContext("webgpu");
context.getCurrentTexture(); // Throws InvalidStateError
Aggiornamenti di WGSL
I vettori con pieno zero di AbstractInt ora possono essere scritti come vec2()
, vec3()
e vec4()
. Vedi tint problema:1892. Ad esempio:
vec2()
èvec2(0,0)
vec3()
èvec3(0,0,0)
vec4()
èvec4(0,0,0,0)
Aggiornamenti all'alba
Migliorare i messaggi di errore
Le etichette descrittore per gli oggetti non validi non vengono più eliminate in modo che tu possa vederle nei messaggi di errore. Vedi issue dawn:1771.
Aggiungi le API mancanti per Node.js
I metodi GPUAdapter::requestAdapterInfo()
e GPUBuffer::getMapState()
sono ora implementati per Node.js. Vedi issue dawn:1761.
Novità di WebGPU
Un elenco di tutti gli argomenti trattati nella serie Novità di WebGPU.
Chrome 127
- Supporto sperimentale per OpenGL ES su Android
- Attributo informazioni GPUAdapter
- Miglioramenti all'interoperabilità di WebAssembly
- Miglioramento degli errori del codificatore di comandi
- Aggiornamenti sull'alba
Chrome 126
- Aumenta il limite di maxTextureArray riuscita
- Ottimizzazione del caricamento del buffer per il backend Vulkan
- Miglioramenti del tempo di compilazione degli Shader
- I buffer dei comandi inviati devono essere univoci
- Aggiornamenti sull'alba
Chrome 125
- Sottogruppi (funzionalità in fase di sviluppo)
- Esegui il rendering su una porzione della texture 3D
- Aggiornamenti sull'alba
Chrome 124
- Texture di archiviazione di sola lettura e lettura/scrittura
- Assistenza per lavoratori dei servizi e lavoratori condivisi
- Nuovi attributi relativi alle informazioni sull'adattatore
- Correzioni di bug
- Aggiornamenti sull'alba
Chrome 123
- Supporto delle funzioni integrate DP4a in WGSL
- Parametri di puntatore senza limitazioni in WGSL
- Sintassi dello zucchero per il deriferimento dei composti in WGSL
- Separa lo stato di sola lettura per gli aspetti relativi allo stencil e alla profondità
- Aggiornamenti sull'alba
Chrome 122
- Ampliare la copertura con la modalità di compatibilità (funzionalità in fase di sviluppo)
- Aumenta il limite maxVertexAttributes
- Aggiornamenti sull'alba
Chrome 121
- Supporta WebGPU su Android
- Usa DXC al posto di FXC per la compilazione dello shaker su Windows
- Query con timestamp nei passaggi di computing e rendering
- Punti di ingresso predefiniti ai moduli Shar
- Supporta display-p3 come spazio colore GPUExternalTexture
- Informazioni sugli heap di memoria
- Aggiornamenti sull'alba
Chrome 120
- Supporto per valori con virgola mobile a 16 bit in WGSL
- Supera i limiti
- Modifiche allo stato Profondità dello stencil
- Aggiornamenti delle informazioni sull'adattatore
- Quantizzazione delle query con timestamp
- Funzionalità per le pulizie di primavera
Chrome 119
- Trame in virgola mobile a 32 bit filtrabili
- formato vertex unorm10-10-10-2
- Formato texture RGB 10a2uint
- Aggiornamenti sull'alba
Chrome 118
- Supporto di HTMLImageElement e ImageData in
copyExternalImageToTexture()
- Supporto sperimentale per la texture di archiviazione in lettura/scrittura e sola lettura
- Aggiornamenti sull'alba
Chrome 117
- Annulla impostazione vertex buffer
- Annulla impostazione gruppo di associazione
- Silenzia gli errori derivanti dalla creazione di pipeline asincrone in caso di smarrimento del dispositivo
- Aggiornamenti della creazione dei moduli SPIR-V Shar
- Migliorare l'esperienza degli sviluppatori
- Memorizzazione nella cache delle pipeline con layout generato automaticamente
- Aggiornamenti sull'alba
Chrome 116
- Integrazione di WebCodec
- Dispositivo smarrito restituito da GPUAdapter
requestDevice()
- Mantieni una riproduzione video fluida se viene chiamato
importExternalTexture()
- Conformità delle specifiche
- Migliorare l'esperienza degli sviluppatori
- Aggiornamenti sull'alba
Chrome 115
- Estensioni lingua WGSL supportate
- Supporto sperimentale per Direct3D 11
- Usa una GPU discreta per impostazione predefinita con alimentazione CA
- Migliorare l'esperienza degli sviluppatori
- Aggiornamenti sull'alba
Chrome 114
- Ottimizzare JavaScript
- getCurrentTexture() su canvas non configurate genera un errore InvalidStateError
- Aggiornamenti di WGSL
- Aggiornamenti sull'alba