Novità di WebGPU (Chrome 117)

François Beaufort
François Beaufort

Annulla impostazione vertex buffer

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);

Annulla impostazione gruppo di associazione

Il trasferimento di null anziché di GPUBindGroup a setBindGroup() su GPURenderPassEncoder o GPURenderBundleEncoder ti consente di 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 asincrona della pipeline in caso di smarrimento 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 derivanti dalla creazione asincrona di pipeline verranno silenziati quando GPUDevice sarà lost per far sembrare che i dispositivi smarriti funzionino il più possibile. Vedi dawn issue:1874.

Aggiornamenti sulla creazione del modulo Shar 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 "Unsafe WebGPU Support" (Assistenza WebGPU non sicura) Il flag come SPIR-V non fa parte della specifica WebGPU. Prima di questa modifica, l'utilizzo di SPIR-V causava 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 associazione in Vertex Shader è stato migliorato per le associazioni di texture di archiviazione e buffer di lettura/scrittura in sola scrittura. Vedi issue dawn:1883.

Memorizzazione nella cache delle pipeline con layout generato automaticamente

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

Aggiornamenti all'alba

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 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++.

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