Yang Baru di WebGPU (Chrome\r117)

François Beaufort
François Beaufort

Membatalkan setelan buffer verteks

Dengan meneruskan null dan bukan GPUBuffer ke setVertexBuffer() di GPURenderPassEncoder atau GPURenderBundleEncoder, Anda dapat membatalkan setelan buffer verteks yang sebelumnya ditetapkan di slot tertentu. Lihat masalah dawn:1675.

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

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

Membatalkan setelan bind group

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

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

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

Menonaktifkan error dari pembuatan pipeline asinkron saat perangkat hilang

Metode createComputePipelineAsync() dan createRenderPipelineAsync() dari GPUDevice menampilkan promise yang diselesaikan saat pembuatan pipeline selesai. Mulai sekarang, error dari pembuatan pipeline asinkron akan dinonaktifkan saat GPUDevice adalah lost agar perangkat yang hilang dapat berfungsi semaksimal mungkin. Lihat masalah dawn:1874.

Update pembuatan modul shader SPIR-V

Membuat modul shader SPIR-V dengan createShaderModule() kini akan menampilkan TypeError kecuali jika Anda menjalankan Chrome dengan flag "Unsafe WebGPU Support" karena SPIR-V bukan bagian dari spesifikasi WebGPU. Sebelum perubahan ini, penggunaan SPIR-V akan menyebabkan GPUInternalError dihasilkan. Lihat perubahan chromium:4711911.

Meningkatkan pengalaman developer

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

Menyimpan pipeline dalam cache dengan tata letak yang dibuat secara otomatis

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

Info terbaru Dawn

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

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

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

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

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

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

Yang Baru di WebGPU

Daftar semua hal yang telah dibahas dalam seri Yang Baru di WebGPU.

Chrome 149-150

Chrome 147-148

Chrome 146

Chrome 145

Chrome 144

Chrome 143

Chrome 142

Chrome 141

Chrome 140

Chrome 139

Chrome 138

Chrome 137

Chrome 136

Chrome 135

Chrome 134

Chrome 133

Chrome 132

Chrome 131

Chrome 130

Chrome 129

Chrome 128

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