Yang Baru di WebGPU (Chrome\r117)

François Beaufort
François Beaufort

Membatalkan penetapan buffer verteks

Dengan meneruskan null, bukan GPUBuffer ke setVertexBuffer() pada GPURenderPassEncoder atau GPURenderBundleEncoder, Anda dapat membatalkan penetapan buffer verteks yang telah ditetapkan sebelumnya dalam slot tertentu. Lihat masalah fawn:1675.

// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);

// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);

Batalkan penetapan bind group

Dengan meneruskan null, bukan GPUBindGroup ke setBindGroup() di GPURenderPassEncoder atau GPURenderBundleEncoder, Anda dapat membatalkan penetapan bind group yang ditetapkan sebelumnya di slot tertentu. Lihat masalah fawn:1675.

// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);

// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);

Senyapkan error dari pembuatan pipeline asinkron saat perangkat hilang

Metode createComputePipelineAsync() dan createRenderPipelineAsync() dari GPUDevice menampilkan promise yang di-resolve saat pembuatan pipeline selesai. Mulai sekarang, error dari pembuatan pipeline asinkron akan disenyapkan saat GPUDevice dalam status lost agar perangkat yang hilang tampak berfungsi semaksimal mungkin. Lihat masalah fajar:1874.

Update pembuatan modul shader SPIR-V

Pembuatan modul shader SPIR-V dengan createShaderModule() kini akan menampilkan TypeError, kecuali jika Anda menjalankan Chrome dengan tanda "Dukungan WebGPU Tidak Aman" karena SPIR-V bukan bagian dari spesifikasi WebGPU. Sebelum perubahan ini menggunakan SPIR-V akan menyebabkan GPUInternalError dibuat sebagai gantinya. Lihat change chromium:4711911.

Meningkatkan pengalaman developer

Pesan error validasi untuk binding tata letak bind group di shader verteks telah ditingkatkan untuk buffer penyimpanan baca-tulis dan binding tekstur penyimpanan hanya tulis. Lihat masalah dawn:1883.

Menyimpan pipeline ke dalam cache dengan tata letak yang dibuat secara otomatis

Pipeline yang dibuat dengan createRenderPipeline({ layout: "auto" }) kini memanfaatkan mekanisme penyimpanan cache di Chrome. Artinya, pipeline ini akan dibuat secara lebih efisien dan akan menggunakan lebih sedikit memori. Lihat masalah fawn:1933.

Update Fajar

wgpu::RequestAdapterOptionsBackendType kini menjadi bagian dari wgpu::RequestAdapterOptions untuk memudahkan aplikasi meminta backend tertentu saat mendapatkan adaptor. Lihat contoh dan issue dawn:1875 berikut.

wgpu::RequestAdapterOptions options = {
    .backendType = wgpu::BackendType::D3D12};

// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);

Beberapa metode tambahan telah diterapkan untuk Node.js. Lihat change dawn:142465.

webgpu.h C API telah mengubah jenisnya untuk nilai boolean dari stdbool menjadi WGPUBool, yang merupakan uint32_t. Perubahan ini dilakukan untuk memastikan bahwa API memiliki ABI yang setara di C dan C++.

Artikel ini hanya mencakup beberapa sorotan utama. Lihat daftar lengkap commit.

Yang Baru di WebGPU

Daftar semua hal yang tercakup dalam seri What's New in WebGPU.

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