Menangkap ekosistem WebGPU

François Beaufort
François Beaufort
Corentin Wallez
Corentin Wallez

Dipublikasikan: 9 November 2023, Terakhir diperbarui: 16 September 2025

WebGPU sering kali dianggap sebagai API grafis web yang memberikan akses terpadu dan cepat ke GPU dengan mengekspos kemampuan hardware canggih dan memungkinkan operasi rendering dan komputasi di GPU, yang serupa dengan Direct3D 12, Metal, dan Vulkan.

Namun, WebGPU melampaui batas sekadar API JavaScript; WebGPU adalah elemen dasar yang mirip dengan WebAssembly, dengan implikasi yang jauh melampaui web karena ekosistemnya yang berkembang pesat. Tim Chrome mengakui WebGPU bukan hanya sebagai teknologi web, tetapi juga sebagai ekosistem yang berkembang pesat dan berpusat pada teknologi inti.

Menjelajahi ekosistem saat ini

Perjalanan dimulai dengan spesifikasi JavaScript, sebuah upaya kolaboratif yang melibatkan banyak organisasi seperti Apple, Google, Intel, Mozilla, dan Microsoft. Semua browser web utama telah menerapkan atau sedang dalam proses menerapkan WebGPU.

Pada saat yang sama, Mozilla dan Google menyadari potensi WebGPU dalam aplikasi khusus platform dan memisahkan penerapan WebGPU dari browser, sehingga memungkinkan penggunaan mandiri.

Untuk Chrome, hal ini terwujud sebagai Dawn, sebuah library C/C++ yang menerjemahkan panggilan WebGPU menjadi perintah driver GPU. Dawn memungkinkan aplikasi C dan C++ menggunakan WebGPU secara native, dengan menyediakan abstraksi GPU yang portabel dan ergonomis menggunakan keahlian vendor browser.

Seperti yang ditunjukkan dalam postingan blog WebGPU: the cross-platform graphics API of tomorrow, mem-porting aplikasi WebGPU spesifik per platform ke web sangatlah mudah. Emscripten, toolchain WebAssembly C++, sudah mendukung WebGPU, dan hanya memerlukan sedikit modifikasi untuk mem-porting-nya ke web.

Anda juga dapat menjalankan kode WebGPU JavaScript di luar browser dengan runtime JavaScript Node.js karena menyertakan modul WebGPU berdasarkan Dawn. Hal ini memungkinkan Anda menjalankan kode tanpa modifikasi di sisi server atau dalam konteks khusus platform lainnya.

Ekosistem serupa ada untuk Rust dengan wgpu, implementasi WebGPU Firefox. Wgpu dapat diintegrasikan langsung ke dalam aplikasi Rust, yang kemudian dapat di-porting ke web menggunakan web-sys. Selain itu, runtime JavaScript Deno mendukung WebGPU melalui wgpu. Lihat postingan blog wgpu alliance with Deno.

Hal ini menciptakan ekosistem paralel antara Rust dan C++ seperti yang ditunjukkan dalam diagram berikut.

Diagram ekosistem WebGPU pada tahun 2023.
Ekosistem WebGPU pada tahun 2023.

Cakrawala baru

Ekosistem WebGPU melampaui ranah JavaScript, C++, dan Rust.

Bahasa pemrograman pilihan Anda mungkin sudah memiliki binding untuk WebGPU karena engineer yang mengerjakan implementasi WebGPU juga mengembangkan header C umum untuk WebGPU. Hal ini dapat digunakan untuk menargetkan Dawn, wgpu, dan lainnya, sehingga mempermudah pembuatan binding untuk bahasa yang menggunakan FFI C.

Tim Chrome juga mempertimbangkan untuk menggunakan Dawn sebagai backend rendering default untuk semua elemen UI browser, termasuk menu, toolbar, alat developer, dan konten web. Dengan demikian, tidak perlu ada penerapan rendering terpisah untuk setiap API native, sehingga proses pengembangan menjadi lebih sederhana. Fitur ini dalam tahap eksperimental di macOS dan Windows di balik tanda chrome://flags/#skia-graphite.