Annulla l'impostazione del buffer di vertici
Il trasferimento di null
anziché di un valore GPUBuffer
a setVertexBuffer()
su GPURenderPassEncoder
o GPURenderBundleEncoder
ti consente di annullare l'impostazione di un buffer di vertice impostato in precedenza in un determinato slot. Vedi issue dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
Gruppo di associazione non impostato
Se passi null
anziché GPUBindGroup
a setBindGroup()
in GPURenderPassEncoder
o GPURenderBundleEncoder
, puoi annullare l'impostazione di un gruppo di associazione impostato in precedenza in un determinato slot. Vedi issue dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Silenzia gli errori della creazione asincrona della pipeline in caso di smarrimento del dispositivo
I metodi createComputePipelineAsync()
e createRenderPipelineAsync()
di GPUDevice
restituiscono una promessa che viene risolta al termine della creazione della pipeline. D'ora in poi, gli errori dovuti alla creazione della pipeline asincrona verranno ignorati quando GPUDevice
è lost
per fare in modo che i dispositivi smarriti sembrino funzionare il più possibile. Vedi dawn issue:1874.
Aggiornamenti sulla creazione di moduli shader SPIR-V
La creazione di un modulo Shar SPIR-V con createShaderModule()
ora genera un TypeError, a meno che tu non esegua Chrome con il flag "Supporto WebGPU non sicuro" perché SPIR-V non fa parte della specifica WebGPU. Prima di questa modifica, l'utilizzo di SPIR-V causava invece la generazione di un GPUInternalError.
Vedi la modifica di chromium:4711911.
Migliorare l'esperienza degli sviluppatori
Il messaggio di errore di convalida per le associazioni di layout del gruppo di binding nello shader vertex è stato migliorato per le associazioni di buffer di archiviazione di lettura/scrittura e di texture di archiviazione di sola scrittura. Vedi issue dawn:1883.
Pipeline di memorizzazione nella cache con layout generato automaticamente
Le pipeline create con createRenderPipeline({ layout: "auto" })
ora sfruttano i meccanismi di memorizzazione nella cache in Chrome. Ciò significa che queste pipeline verranno create in modo più efficiente e utilizzeranno meno memoria. Vedi issue dawn:1933.
Aggiornamenti di Dawn
wgpu::RequestAdapterOptionsBackendType
ora fa parte di wgpu::RequestAdapterOptions
per semplificare la richiesta di un determinato backend da parte delle applicazioni quando ricevono un'opzione di adattamento. Vedi l'esempio seguente e issue dawn:1875.
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Sono stati implementati diversi metodi aggiuntivi per Node.js. Vedi change dawn:142465.
L'API webgpu.h C ha cambiato il tipo di valori booleani da stdbool
a WGPUBool
, ovvero un valore uint32_t
. Questa modifica è stata apportata per garantire che l'API abbia un'ABI equivalente in C e C++.
Sono riportati solo alcuni punti salienti. Consulta l'elenco completo dei commit.
Novità di WebGPU
Un elenco di tutti gli argomenti trattati nella serie Novità di WebGPU.
Chrome 131
- Clip delle distanze in WGSL
- GPUCanvasContext getConfiguration()
- Gli elementi primitivi punto e linea non devono avere bias di profondità
- Funzioni integrate di scansione inclusiva per i sottogruppi
- Supporto sperimentale per il rendering indiretto multi-draw
- Opzione per la compilazione del modulo di ombreggiatura matematica rigorosa
- Rimuovi requestAdapterInfo() di GPUAdapter
- Aggiornamenti di Dawn
Chrome 130
- Combinazione con doppia origine
- Miglioramenti ai tempi di compilazione degli shader su Metal
- Obsoletezza di requestAdapterInfo() di GPUAdapter
- Aggiornamenti di Dawn
Chrome 129
- Supporto HDR con modalità di mappatura tonale della tela
- Supporto dei sottogruppi ampliato
- Aggiornamenti di Dawn
Chrome 128
- Sperimentazione con i sottogruppi
- Ritiro dell'impostazione della bias di profondità per linee e punti
- Nascondi avviso di errore non acquisito se preventDefault
- WGSL esegue prima l'interpolazione del campionamento e poi
- Aggiornamenti di Dawn
Chrome 127
- Supporto sperimentale per OpenGL ES su Android
- Attributo info di GPUAdapter
- Miglioramenti all'interoperabilità di WebAssembly
- Miglioramento degli errori del codificatore di comandi
- Aggiornamenti di Dawn
Chrome 126
- Aumentare il limite di maxTextureArrayLayers
- Ottimizzazione del caricamento del buffer per il backend Vulkan
- Miglioramenti ai tempi di compilazione degli shader
- Gli spazi dei comandi inviati devono essere univoci
- Aggiornamenti sull'alba
Chrome 125
- Sottogruppi (funzionalità in fase di sviluppo)
- Eseguire il rendering di una sezione della texture 3D
- Aggiornamenti di Dawn
Chrome 124
- Texture di archiviazione di sola lettura e di lettura e scrittura
- Assistenza per lavoratori dei servizi e lavoratori condivisi
- Nuovi attributi delle informazioni sull'adattatore
- Correzioni di bug
- Aggiornamenti di Dawn
Chrome 123
- Supporto delle funzioni integrate DP4a in WGSL
- Parametri del cursore non soggetti a limitazioni in WGSL
- Sintassi alternativa per il dereferenziamento dei compositi in WGSL
- Stato di sola lettura separato per gli aspetti di stencil e profondità
- Aggiornamenti di Dawn
Chrome 122
- Ampliare la copertura con la modalità di compatibilità (funzionalità in fase di sviluppo)
- Aumentare il limite di maxVertexAttributes
- Aggiornamenti di Dawn
Chrome 121
- Supporto di WebGPU su Android
- Usa DXC al posto di FXC per la compilazione dello shaker su Windows
- Query sui timestamp nei passaggi di calcolo e rendering
- Punti di contatto predefiniti per i moduli shader
- Supporto di 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
- Spingere i limiti al massimo
- Modifiche allo stato Profondità dello stencil
- Aggiornamenti delle informazioni sugli adattatori
- Quantizzazione delle query sui timestamp
- Funzionalità per le pulizie di primavera
Chrome 119
- Texture con formato a virgola mobile 32 bit filtrabili
- Formato vertice unorm10-10-10-2
- Formato texture RGB 10a2uint
- Aggiornamenti di Dawn
Chrome 118
- Supporto di HTMLImageElement e ImageData in
copyExternalImageToTexture()
- Supporto sperimentale per le texture di archiviazione in lettura/scrittura e di sola lettura
- Aggiornamenti di Dawn
Chrome 117
- Buffer di vertici non impostato
- Reimpostare il 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
- Miglioramento dell'esperienza degli sviluppatori
- Pipeline di memorizzazione nella cache con layout generato automaticamente
- Aggiornamenti di Dawn
Chrome 116
- Integrazione di WebCodecs
- Dispositivo smarrito restituito da GPUAdapter
requestDevice()
- Mantenere la riproduzione video fluida se viene chiamato
importExternalTexture()
- Conformità alle specifiche
- Miglioramento dell'esperienza degli sviluppatori
- Aggiornamenti di Dawn
Chrome 115
- Estensioni lingua WGSL supportate
- Supporto sperimentale per Direct3D 11
- Ottenere una GPU discreta per impostazione predefinita con alimentazione CA
- Miglioramento dell'esperienza degli sviluppatori
- Aggiornamenti di Dawn
Chrome 114
- JavaScript di Optimize
- getCurrentTexture() su canvas non configurato genera un errore InvalidStateError
- Aggiornamenti WGSL
- Aggiornamenti di Dawn