Buffer dei vertici non impostato
Se passi null
anziché GPUBuffer
a setVertexBuffer()
in GPURenderPassEncoder
o GPURenderBundleEncoder
, puoi annullare l'impostazione di un buffer di vertici impostato in precedenza in un determinato slot. Consulta il problema 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. Consulta il problema dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Eliminare gli errori della creazione della pipeline asincrona quando il dispositivo viene smarrito
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 shader SPIR-V con createShaderModule()
ora genera un TypeError, a meno che non esegua Chrome con il flag "Supporto WebGPU non sicuro", poiché 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 change 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 di 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. Consulta 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.
Il tipo per i valori booleani dell'API C webgpu.h è passato da stdbool
a WGPUBool
, che è un uint32_t
. Questa modifica è stata apportata per garantire che l'API abbia un ABI equivalente in C e C++.
Sono riportati solo alcuni dei punti salienti. Consulta l'elenco completo dei commit.
Novità di WebGPU
Un elenco di tutto ciò che è stato trattato nella serie Novità di WebGPU.
Chrome 131
- Tagliare le 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 l'indirizzamento multi-draw
- Opzione di compilazione del modulo shader matematica rigorosa
- Rimuovi requestAdapterInfo() di GPUAdapter
- Aggiornamenti di Dawn
Chrome 130
- Combinazione di due origini
- 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
- Nascondere l'avviso DevTools relativo a un errore non rilevato 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
- Errori dell'encoder dei comandi migliorati
- 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 di Dawn
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
- Supporto di worker di servizio e worker 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 restrizioni 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
- Utilizzare DXC anziché FXC per la compilazione degli shader 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 di Dawn
Chrome 120
- Supporto dei valori in virgola mobile a 16 bit in WGSL
- Spingere i limiti al massimo
- Modifiche allo stato della maschera di profondità
- 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 rgb10a2uint
- 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
- Ignorare gli errori della creazione della pipeline asincrona quando il dispositivo viene smarrito
- Aggiornamenti sulla creazione di moduli shader SPIR-V
- 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 di 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