FOCUS TECHNO – Google mengumumkan hari ini bahwa mereka akan mengaktifkan dukungan WebGPU di browser Chrome secara default mulai dari versi 113, yang saat ini dalam versi beta.
Dalam pengembangan sejak 2017, WebGPU adalah API grafis generasi selanjutnya yang bertujuan untuk memberikan manfaat dari API rendah overhead seperti Direct3D 12 milik Microsoft, Metal milik Apple, dan Vulkan ke browser web dan aplikasi lainnya.
Dukungan WebGPU telah tersedia, namun dinonaktifkan secara default di Chrome untuk sementara waktu, karena API belum diputuskan dan hal-hal dapat rusak dari pembaruan ke pembaruan.
Google mengatakan bahwa Mozilla dan Apple pada akhirnya akan mendukung WebGPU di Firefox dan Safari, dan browser seperti Microsoft Edge dan Opera yang mengandalkan mesin browser Chromium dapat memilih untuk mengaktifkannya seperti yang telah dilakukan oleh Google
Chrome 113 mendukung WebGPU pada Windows, macOS, dan ChromeOS untuk memulai, dengan “dukungan untuk platform lain” seperti Linux dan Android “akan datang nanti tahun ini”. Versi browser ini seharusnya tersedia untuk semua pengguna Chrome pada bulan Mei.
Dukungan di Chrome adalah dorongan besar untuk standar baru apa pun, baik itu API baru atau yang diperbarui, format gambar, atau codec video.
Menurut data StatCounter, Chrome menyumbang sekitar dua pertiga pangsa pasar browser di seluruh dunia, dan hampir 80 persen dari semua pangsa pasar browser jika Anda menghitung browser berbasis Chromium lainnya.
Begitu Safari dan Firefox menambahkan dukungan, hampir semua browser web di mana saja akan dapat menjalankan kode WebGPU, sehingga perlu dijelaskan secara singkat apa itu WebGPU dan mengapa itu ada.
WebGPU adalah jenis penerus WebGL, API yang jauh lebih tua yang memungkinkan grafis berbasis OpenGL dirender di browser Anda tanpa memerlukan plugin pihak ketiga tambahan seperti Flash milik Adobe.
Meskipun revolusioner ketika diumumkan pada tahun 2009, WebGL saat ini mengalami banyak masalah yang sama dengan OpenGL:
Tidak memanfaatkan semua fitur GPU saat ini, dapat kehilangan performa karena overhead driver, dan hanya memiliki dukungan terbatas untuk beban kerja komputasi GPU.
“Sementara WebGL sebagian besar untuk menggambar gambar tetapi dapat dipakai kembali (dengan usaha besar) untuk melakukan jenis komputasi lain, WebGPU memiliki dukungan kelas satu untuk melakukan komputasi umum pada GPU,” kata dokumen draft yang menjelaskan mengapa WebGPU ada. API baru ini akan memungkinkan grafis yang lebih baik dalam kerangka kerja seperti Babylon.js dan mesin game seperti Unity; akan mendukung beban kerja yang dipercepat GPU seperti yang digunakan untuk pembelajaran mesin dan AI; dan dapat memudahkan aplikasi foto dan video berbasis web (antara lain) untuk menggunakan jenis akselerasi GPU yang menguntungkan aplikasi native.
WebGPU dikembangkan oleh sebuah kelompok kerja yang melibatkan anggota dari Google, Microsoft, Apple, Mozilla, Intel, dan banyak perusahaan lain, dan sebagai hasilnya, API dirancang agar sekompatibel mungkin. WebGPU bukan implementasi langsung dari API grafis yang ada, tetapi API sendiri yang duduk di atas dan berinteraksi dengan Direct3D 12, Metal, dan Vulkan. Penjelasan ini dari Surma, seorang insinyur di Shopify dan mantan karyawan Google, menyimpulkan dengan baik (tekanan kami):
“Sementara WebGL hanya lapisan tipis di sekitar OpenGL, WebGPU memilih pendekatan yang berbeda. Ia memperkenalkan abstraksi sendiri dan tidak langsung merefleksikan API native mana pun. Ini sebagian karena tidak ada API tunggal yang tersedia pada semua sistem, tetapi juga karena banyak konsep (seperti manajemen memori yang sangat rendah) bukan idiomatik untuk API yang menghadap ke web. Sebaliknya, WebGPU dirancang agar terasa “webby” dan nyaman duduk di atas semua API grafis native sambil mengabstraksi keunikan mereka. Ini sedang di standarisasi di W3C dengan semua vendor browser utama memiliki kursi di meja.”
Ini memiliki keuntungan membuat kode WebGPU sangat portabel – menulis kode WebGPU, dan selama pengguna memiliki perangkat keras dan browser yang mendukungnya, Anda harus mendapatkan hasil yang sama pada sistem Windows yang menjalankan Direct3D dan ponsel Android yang menjalankan Vulkan. Dan ini menghindari beberapa peretasan yang membuat WebGL berjalan – misalnya, WebGL di Windows dan macOS bahkan tidak menggunakan OpenGL secara langsung, tetapi terjemahan yang disebut ANGLE yang mengubah panggilan API OpenGL menjadi panggilan API Direct3D dan Metal. Dengan WebGPU, tidak perlu memulai proyek terpisah untuk menulis di sekitar implementasi OpenGL yang lambat atau buruk.
WebGPU juga memiliki bahasa shader-nya sendiri (WGSL), yang tim Chrome masih bekerja untuk mendukung – pengumuman hari ini mengatakan bahwa Google “berencana untuk menyediakan akses yang lebih dalam ke inti shader” melalui WGSL dalam rilis masa depan. Seperti API WebGPU lainnya, WGSL dimaksudkan untuk tidak bergantung pada platform dan mudah diterjemahkan ke bahasa shader yang diinginkan dari sistem operasi apa pun yang Anda jalankan.
Terakhir, meskipun terdapat kata “web” dalam namanya, API WebGPU tidak terbatas pada browser. Proyek wgpu adalah versi WebGPU untuk Rust yang memungkinkan aplikasi WebGPU ditulis dan dijalankan di luar web browser.
Jika Anda ingin bereksperimen dengan WebGPU sekarang, versi beta Chrome 113 tersedia di sini. Repositori GitHub dari contoh kode tersedia di sini, dan ada juga dokumentasi resmi tentang WebGPU dan WGSL.