Novità di WebGPU (Chrome 117)

François Beaufort
François Beaufort

Annulla impostazione buffer vertice

Se passi null anziché GPUBuffer a setVertexBuffer() su GPURenderPassEncoder o GPURenderBundleEncoder, puoi annullare l'impostazione di un buffer del vertice impostato in precedenza in una determinata area. 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);

Annulla impostazione gruppo di associazione

Se passi null anziché GPUBindGroup a setBindGroup() su GPURenderPassEncoder o GPURenderBundleEncoder, puoi annullare l'impostazione di un gruppo di associazione impostato in precedenza in un determinato spazio. 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 di pipeline asincrone in caso di perdita del dispositivo

I metodi createComputePipelineAsync() e createRenderPipelineAsync() di GPUDevice restituiscono una promessa che si risolve al termine della creazione della pipeline. D'ora in poi, gli errori della creazione asincrona della pipeline verranno silenziati quando GPUDevice raggiunge lost per far funzionare il più possibile i dispositivi smarriti. Vedi dawn issue:1874.

Aggiornamenti sulla creazione del modulo shabby di SPIR-V

La creazione di un modulo Shader SPIR-V con createShaderModule() ora genera un TypeError, a meno che non esegui Chrome con il flag "Unsafe WebGPU Support" (Assistenza WebGPU non sicura) perché SPIR-V non fa parte della specifica WebGPU. Prima di questa modifica, utilizzando SPIR-V veniva generato un errore GPUInternalError. Consulta la pagina Change chromium:4711911.

Migliorare l'esperienza degli sviluppatori

Il messaggio di errore relativo alla convalida per le associazioni di layout dei gruppi di associazione in Vertex Shader è stato migliorato per le associazioni del buffer di archiviazione in lettura/scrittura e per le associazioni di texture di archiviazione di sola scrittura. Vedi issue dawn:1883.

Memorizzazione nella cache delle pipeline con il layout generato automaticamente

Le pipeline create con createRenderPipeline({ layout: "auto" }) ora sfruttano i meccanismi di memorizzazione nella cache in Chrome. Significa che queste pipeline saranno create in modo più efficiente e utilizzeranno meno memoria. Vedi issue dawn:1933.

Aggiornamenti da Dawn

wgpu::RequestAdapterOptionsBackendType ora fa parte di wgpu::RequestAdapterOptions per consentire alle applicazioni di richiedere più facilmente un determinato backend quando ricevono un adattatore. Vedi l'esempio che segue 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, che corrisponde a un uint32_t. Questa modifica è stata apportata per garantire che l'API abbia un'ABI equivalente in C e C++.

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