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. Oleh karena itu, setiap panggilan requestDevice() berikutnya yang menggunakan adaptor yang sama kini 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

A GPUTexture kini dapat digunakan langsung sebagai GPUBindingResource untuk diekspos ke shader untuk binding. GPUTexture 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. Hal ini memungkinkan Anda mengambil sampel tekstur 1D dari shader verteks yang sebelumnya hanya dapat dilakukan dari shader fragmen dengan textureSample(). Lihat masalah 382514673.

Penghentian 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 GPUAdapter isFallbackAdapter kini telah dihapus. Atribut ini diganti dengan atribut GPUAdapterInfo isFallbackAdapter yang diperkenalkan di Chrome 136. Lihat niat untuk menghapus.

Info terbaru Dawn

Fungsi wgpuInstanceGetWGSLLanguageFeatures() digunakan untuk mendapatkan daftar fitur bahasa WGSL yang didukung oleh instance. Sebelumnya, fungsi 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 platform tidak memiliki tekstur saat ini. Lihat masalah 425930323

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

Tombol perangkat dump_shaders_on_failure memungkinkan Anda membuang shader hanya jika terjadi kegagalan untuk tujuan proses debug. Tombol ini hanya berlaku untuk backend D3, meskipun kemungkinan perluasan ke backend lain di masa mendatang. Lihat masalah 429187478.

Beberapa perubahan telah dilakukan pada backend Vulkan untuk mengurangi overhead saat mengirimkan render pass, terutama untuk meningkatkan performa di GPU seluler. Misalnya: menyimpan VkFramebuffers dalam cache.

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