Yang Baru di WebGPU (Chrome 146)

François Beaufort
François Beaufort

Dipublikasikan: 25 Februari 2026

Mendukung mode kompatibilitas WebGPU di OpenGL ES 3.1

Meskipun WebGPU dirancang agar sesuai dengan API grafis modern seperti Vulkan, Metal, dan D3D12, banyak pengguna memiliki hardware lama yang tidak mendukung standar ini. Untuk menjembatani kesenjangan ini dan memastikan aksesibilitas yang luas, Chrome memperkenalkan fitur keikutsertaan baru yang disebut mode kompatibilitas.

Mode ini memungkinkan Anda menjalankan WebGPU di API grafis yang lebih lama seperti OpenGL ES 3.1. Dengan menargetkan subset spesifikasi WebGPU yang sedikit dibatasi, Anda memastikan aplikasi web Anda dapat diakses oleh semua orang, mulai dari perangkat game terbaru hingga laptop dan perangkat seluler yang lebih lama. Saat memulai dengan Android, tim sedang mempelajari dukungan untuk perangkat lain, seperti ChromeOS dengan OpenGL ES 3.1 dan Windows dengan Direct3D 11.

Untuk banyak aplikasi web, Anda dapat mengaktifkan mode kompatibilitas dengan meneruskan featureLevel: "compatibility" saat memanggil requestAdapter(). Jika perangkat Anda mendukung Core WebGPU, Chrome akan menampilkan adaptor yang kompatibel dengan Core, tetapi aplikasi web Anda akan tetap berada dalam batas kompatibilitas kecuali jika mengaktifkan fitur "core-features-and-limits" (atau mengaktifkan semua fitur yang tersedia). Aplikasi yang lebih kompleks mungkin memerlukan penyesuaian kecil agar sesuai dengan batasan mode.

// Request a GPUAdapter in compatibility mode.
const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility" });
const device = await adapter.requestDevice();

Lihat panduan Dasar-Dasar WebGPU untuk mengetahui informasi mendetail tentang batasan arsitektur khusus mode ini. Selain itu, semua contoh WebGPU kini mendukung mode kompatibilitas. Anda juga dapat membaca maksud untuk mengirim.

Lampiran sementara

Anda dapat menggunakan flag TRANSIENT_ATTACHMENT GPUTextureUsage baru untuk membuat lampiran yang hemat memori. Hal ini memungkinkan operasi render pass tetap berada di memori petak, yang menghindari traffic VRAM dan dapat menghindari alokasi VRAM untuk tekstur.

Dengan mendeklarasikan tekstur sebagai sementara (atau "tanpa memori"), GPU mengetahui bahwa ia hanya memerlukan konten tekstur untuk sementara—khususnya, hanya dalam proses render saat ini. Selain itu, karena konten tekstur dibuang setelah melewati render, driver mungkin tidak perlu mengalokasikan VRAM untuknya sama sekali.

Contoh berikut menunjukkan cara membuat tekstur sementara.

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

if ('TRANSIENT_ATTACHMENT' in GPUTextureUsage) {

  const transientTexture = device.createTexture({
    size: [42, 42],
    // The TRANSIENT_ATTACHMENT flag indicates the texture content is temporary,
    // potentially keeping it in fast on-chip memory.
    usage: GPUTextureUsage.RENDER_ATTACHMENT | GPUTextureUsage.TRANSIENT_ATTACHMENT,
    format: 'rgba8unorm',
  });
}

Lihat Hello Triangle MSAA - WebGPU Sample dan niat untuk meluncurkan.

Ekstensi WGSL texture_and_sampler_let

Ekstensi bahasa WGSL texture_and_sampler_let memungkinkan Anda menetapkan variabel tekstur atau sampler ke let dalam shader WGSL. Fitur ini saat ini menyediakan mekanisme penamaan alternatif dan mempersiapkan dukungan tanpa pengikatan di mana metode yang menampilkan tekstur atau sampler dapat disimpan langsung ke dalam variabel lokal.

Lihat contoh berikut dan niat untuk mengirimkan.

@group(0) @binding(0) var tex: texture_2d<f32>;
@group(1) @binding(0) var store : texture_storage_2d<r32float, read_write>;

@fragment fn main() {
    let a = tex;
    var res: vec4f = textureLoad(a, vec2i(1i), 0);

    textureStore(store, vec2i(0i), res);
}

Info terbaru Dawn

Tingkatan batas baru berikut tersedia:

Validasi SPIR-V diaktifkan secara default di Android untuk memberikan lapisan keamanan tambahan dan mencegah ketidakstabilan driver dari input yang salah format. Lihat masalah 473526182.

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