Lompat ke konten Lompat ke sidebar Lompat ke footer

Google Chrome Hadirkan WebGPU API untuk Tingkatkan Grafis Web dan Game Daring

Google WebGPU
Sumber gambar: Chrome.com
Google hari ini mengumumkan akan mengaktifkan dukungan WebGPU di browser Chrome-nya secara default mulai versi 113, saat ini dalam versi beta. 

Dalam pengembangan sejak 2017, WebGPU adalah API grafis generasi berikutnya yang bertujuan untuk menghadirkan manfaat API overhead rendah seperti Microsoft Direct3D 12, Apple's Metal, dan Vulkan ke browser web dan aplikasi lainnya.

Dukungan WebGPU telah tersedia tetapi dinonaktifkan secara default di Chrome untuk sementara waktu sekarang, karena API belum diselesaikan dan hal-hal dapat terputus 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 mungkin dapat memilih untuk mengaktifkannya seperti yang dimiliki Google.

Chrome 113 mendukung WebGPU di Windows, macOS, dan ChromeOS untuk memulai, dengan "dukungan untuk platform lain" seperti Linux dan Android "datang akhir tahun ini". Versi browser ini akan diluncurkan ke semua pengguna Chrome sekitar bulan Mei.

Dukungan di Chrome merupakan dorongan besar untuk standar baru apa pun, apakah itu API baru atau yang diperbarui, format gambar, atau codec video. Chrome menyumbang sekitar dua pertiga pangsa pasar browser di seluruh dunia, menurut data StatCounter, dan hampir 80 persen dari semua pangsa pasar browser jika Anda menghitung browser berbasis Chromium lainnya. 

Setelah Safari dan Firefox menambahkan dukungan, hampir semua browser web di mana saja akan dapat menjalankan kode WebGPU, jadi ada baiknya menjelaskan secara singkat apa itu WebGPU dan mengapa itu ada.

Apa itu WebGPU?

WebGPU adalah penerus dari WebGL , API yang jauh lebih tua yang memungkinkan grafik berbasis OpenGL dirender di browser Anda tanpa memerlukan plugin pihak ketiga tambahan seperti Adobe's Flash. 

Meskipun revolusioner ketika diumumkan pada tahun 2009, WebGL hari ini mengalami banyak masalah yang sama dengan OpenGL: WebGL tidak memanfaatkan semua fitur GPU saat ini, dapat kehilangan kinerja karena overhead driver, dan hanya terbatas dan dukungan kludgey untuk beban kerja komputasi GPU.

"Sementara WebGL sebagian besar untuk menggambar gambar tetapi dapat digunakan kembali (dengan usaha keras) untuk melakukan jenis perhitungan lain, WebGPU memiliki dukungan kelas satu untuk melakukan perhitungan umum pada GPU," kata draf dokumen yang menjelaskan mengapa WebGPU ada.

API baru akan mengaktifkan grafis yang ditingkatkan 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 mempermudah aplikasi foto dan video berbasis web (antara lain) untuk menggunakan jenis akselerasi GPU yang dapat dimanfaatkan oleh aplikasi asli.

WebGPU sedang dikembangkan oleh kelompok kerja yang mencakup anggota dari Google, Microsoft, Apple, Mozilla, Intel, dan banyak perusahaan lain, dan sebagai hasilnya, API telah dirancang agar kompatibel seluas mungkin. 

WebGPU bukanlah implementasi langsung dari API grafik yang ada, melainkan API miliknya sendiri yang berada di atas dan berinteraksi dengan Direct3D 12, Metal, dan Vulkan. Penjelasan dari Surma ini , seorang insinyur di Shopify dan mantan Googler, merangkumnya dengan baik (penekanan kami):

"Sementara WebGL hanyalah pembungkus tipis di sekitar OpenGL, WebGPU memilih pendekatan yang berbeda. Ini memperkenalkan abstraksinya sendiri dan tidak secara langsung mencerminkan salah satu API asli ini. Ini sebagian karena tidak ada API tunggal yang tersedia di semua sistem, tetapi juga karena banyak konsep (seperti manajemen memori tingkat sangat rendah) tidak idiomatis untuk API yang menghadap ke web. 

Sebagai gantinya, WebGPU dirancang untuk merasa "webby" dan duduk dengan nyaman di atas salah satu API grafis asli sambil mengabstraksi mereka keistimewaan. Ini sedang distandarisasi di W3C dengan semua vendor browser utama duduk di meja.

Ini bermanfaat membuat kode WebGPU sangat portabel—tulis kode WebGPU, dan selama pengguna memiliki perangkat keras dan browser yang mendukungnya, Anda akan mendapatkan hasil yang sama pada sistem Windows yang menjalankan Direct3D dan ponsel Android yang menjalankan Vulkan. 

Dan itu menghindari beberapa peretasan yang membuat WebGL tetap berjalan — misalnya, WebGL di Windows dan macOS bahkan tidak menggunakan OpenGL secara langsung, melainkan penerjemah bernama ANGLE yang mengubah panggilan API OpenGL menjadi panggilan Direct3D dan Metal API. Dengan WebGPU, tidak perlu memulai proyek terpisah untuk mengatasi implementasi OpenGL yang lambat atau tidak terpelihara dengan baik.

WebGPU juga memiliki bahasa shadernya sendiri (WGSL), yang masih didukung oleh tim Chrome—pengumuman hari ini mengatakan bahwa Google "berencana untuk menyediakan akses yang lebih dalam ke inti shader" melalui WGSL dalam rilis mendatang. 

Seperti API WebGPU lainnya, WGSL dimaksudkan sebagai platform-agnostik dan mudah diterjemahkan ke bahasa shader yang disukai dari sistem operasi apa pun yang Anda gunakan.

Akhirnya, terlepas dari "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 browser web.

Jika Anda ingin bereksperimen dengan WebGPU sekarang, versi beta Chrome 113 tersedia di sini. Repo GitHub dari contoh kode tersedia di sini, dan ada juga dokumentasi resmi tentang WebGPU dan WGSL.