Yang Baru di WebGPU (Chrome 140)

François Beaufort
François Beaufort

Dipublikasikan: 27 Agustus 2025

Permintaan perangkat menggunakan adaptor

Menurut spesifikasi WebGPU, adaptor ditandai sebagai "digunakan" setelah permintaan perangkat berhasil. Akibatnya, setiap panggilan requestDevice() berikutnya yang menggunakan adaptor yang sama akan menghasilkan promise yang ditolak. Sebelumnya, panggilan ini akan menampilkan perangkat yang hilang saat pembuatan. Lihat masalah 415825174.

const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();

await adapter.requestDevice(); // Fails because adapter has been consumed.

Singkatan untuk menggunakan tekstur saat tampilan tekstur digunakan

GPUTexture kini dapat digunakan langsung sebagai GPUBindingResource untuk diekspos ke shader untuk pengikatan. Objek ini juga dapat digunakan sebagai GPURenderPassColorAttachment view, GPURenderPassColorAttachment resolveTarget, dan GPURenderPassDepthStencilAttachment view untuk meningkatkan ergonomi. Hal ini menawarkan pendekatan yang lebih sederhana daripada menggunakan GPUTextureView untuk mendapatkan tampilan default. Lihat masalah 425906323.

const bindGroup = myDevice.createBindGroup({
  layout: myPipeline.getBindGroupLayout(0),
  entries: [
    { binding: 0, resource: mySampler },
    { binding: 1, resource: myTexture }, // Same as myTexture.createView()
    { binding: 2, resource: myExternalTexture },
    { binding: 3, resource: myBuffer },
  ],
});

WGSL textureSampleLevel mendukung tekstur 1D

Tekstur 1D kini dapat diambil sampelnya menggunakan textureSampleLevel() agar konsisten dengan tekstur 2D. Dengan demikian, Anda dapat mengambil sampel tekstur 1D dari shader vertex yang sebelumnya hanya dapat dilakukan dari shader fragmen dengan textureSample(). Lihat masalah 382514673.

Menghentikan penggunaan tekstur penyimpanan hanya baca bgra8unorm

Penggunaan format "bgra8unorm" dengan tekstur penyimpanan hanya baca kini tidak digunakan lagi. Spesifikasi WebGPU secara eksplisit melarang hal ini, dan izin sebelumnya di Chrome adalah bug, karena format ini ditujukan untuk akses hanya tulis dan tidak portabel. Lihat masalah 427681156.

Menghapus atribut GPUAdapter isFallbackAdapter

Seperti yang diumumkan sebelumnya, atribut isFallbackAdapter GPUAdapter kini dihapus. Atribut ini digantikan oleh atribut GPUAdapterInfo isFallbackAdapter yang diperkenalkan di Chrome 136. Lihat niat untuk menghapus.

Update Dawn

Fungsi wgpuInstanceGetWGSLLanguageFeatures() digunakan untuk mendapatkan daftar fitur bahasa WGSL yang didukung oleh instance. Sebelumnya, metode ini menampilkan nilai WGPUStatus. Fungsi ini telah diupdate agar tidak menampilkan nilai karena tidak dapat gagal. Lihat masalah 429178774.

Fungsi wgpuSurfacePresent() kini menampilkan error WGPUStatus jika permukaan tidak memiliki tekstur saat ini. Lihat masalah 425930323

Fitur wgpu::InstanceFeatureName::MultipleDevicesPerAdapter baru memungkinkan adaptor membuat beberapa perangkat tanpa "dikonsumsi". Lihat masalah 415825174.

Tombol dump_shaders_on_failure perangkat memungkinkan Anda melakukan dump shader hanya saat terjadi kegagalan untuk tujuan proses debug. Fitur ini berlaku secara eksklusif untuk backend D3, meskipun kemungkinan akan diperluas ke backend lain pada masa mendatang. Lihat masalah 429187478.

Beberapa perubahan telah dilakukan pada backend Vulkan untuk mengurangi overhead saat mengirimkan proses render, terutama untuk meningkatkan performa pada GPU seluler. Misalnya: meng-cache VkFramebuffer.

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

Yang Baru di WebGPU

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

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