Yang Baru di WebGPU (Chrome 141)

François Beaufort
François Beaufort

Dipublikasikan: 24 September 2025

Tint IR selesai

Project yang berjalan lama (lebih dari 2,5 tahun) untuk meningkatkan performa internal Tint, compiler WGSL, telah selesai. Representasi Menengah (IR) dimasukkan ke dalam backend di antara Abstract Syntax Tree (AST) saat ini dan generator kode backend. Pengenalan IR memungkinkan tim Chrome menghapus semua transformasi AST dan membuatnya kembali sebagai transformasi IR yang, karena perbedaan arsitektur, jauh lebih cepat. Bagian internal Tint, di beberapa platform, mengalami peningkatan kecepatan hingga tujuh kali lipat dari perubahan ini.

IR baru ini membuka potensi signifikan untuk analisis dan transformasi shader canggih dalam skala besar, yang tidak hanya menjanjikan peningkatan performa yang signifikan, tetapi juga jalur yang lebih lancar bagi Chrome untuk menghadirkan fitur WebGPU baru yang menarik di masa mendatang.

Mulai dari tonggak pencapaian ini, semua generator kode backend berfungsi dari representasi IR, semua transformasi AST telah dihapus, dan semua kode dukungan AST untuk menjalankan transformasi telah dihapus.

Sebagai bagian dari upaya peningkatan IR, frontend SPIR-V (yang digunakan oleh aplikasi untuk mengonversi SPIR-V ke WGSL) dikonversi dari menghasilkan representasi AST menjadi menghasilkan langsung ke IR. Peningkatan ini juga memperkenalkan fitur yang telah lama dinanti-nantikan seperti dukungan float 16 ke frontend SPIR-V.

Analisis rentang bilangan bulat di compiler WGSL

Tim Chrome secara progresif meluncurkan analisis rentang bilangan bulat baru untuk Tint, compiler bahasa shader WebGPU. Analisis rentang bilangan bulat memperkirakan nilai minimum dan maksimum yang dapat diambil oleh variabel bilangan bulat selama eksekusi program tanpa benar-benar menjalankan program.

Fitur ini bertujuan untuk meningkatkan efisiensi dengan mengurangi kebutuhan pemeriksaan batas yang mahal dan akan segera diaktifkan secara default di semua platform. Lihat masalah 348701956.

Update SPIR-V 1.4 untuk backend Vulkan

Dukungan SPIR-V 1.4 diluncurkan jika tersedia di perangkat Android dan ChromeOS. Update ini memungkinkan Tint, compiler WGSL, memanfaatkan fitur, pelonggaran, dan petunjuk baru SPIR-V untuk pembuatan kode yang lebih efisien dalam skenario tertentu saat mengompilasi shader Vulkan. Lihat masalah 427717267.

Update Dawn

Header webgpu.h standar, yang menentukan WebGPU C API inti, kini akhirnya dianggap stabil. Stabilitas ini berlaku khusus untuk API inti yang ditentukan di upstream, tidak termasuk ekstensi implementasi (misalnya, dari Dawn atau Emdawnwebgpu), jadi sebaiknya gunakan webgpu.h yang disediakan oleh implementasi persis yang Anda tautkan. Meskipun header stabil, Anda mungkin masih mengalami perbedaan yang tidak diinginkan antara penerapan saat kami terus memperbaiki bug dan mengatasi kompatibilitas di seluruh ekosistem. Jika ya, laporkan bug.

Berkat kontributor eksternal William Candillon, Anda kini dapat menemukan biner Dawn yang telah dibuat sebelumnya sebagai artefak di GitHub Actions. File tersebut mencakup file .lib statis untuk Android, paket .XCFramework untuk Apple, dan semua file header yang diperlukan. Lihat Dawn PR #39 dan contoh artefak.

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