WebGPU untuk Android

Library WebGPU Android Jetpack menyediakan binding Kotlin idiomatis untuk standar WebGPU, sehingga memungkinkan grafis 3D dan kemampuan komputasi modern berperforma tinggi dalam aplikasi Android Anda.

WebGPU adalah penerus WebGL dan keturunan spiritual OpenGL, yang dibangun dari awal untuk mencerminkan cara kerja GPU modern dan mengekspos kemampuan GPU dengan cara lintas platform, aman, dan ergonomis.

Mengapa WebGPU?

  • Kegunaan yang Disederhanakan: Meskipun Vulkan adalah API grafis tingkat rendah utama di Android. WebGPU menawarkan API tingkat tinggi yang modern dan lebih mudah didekati dan jauh lebih tidak bertele-tele untuk digunakan dibandingkan dengan Vulkan.
  • Batching dan Serialisasi WebGPU merekam beberapa perintah ke dalam Buffer Perintah, yang merupakan bagian dari desainnya untuk meminimalkan interaksi protokol. Hal ini juga meminimalkan kebutuhan untuk memanggil metode eksternal saat menggunakan binding Kotlin.
  • Dukungan Universal: Kode shader WebGPU (WGSL) dapat langsung dibagikan di seluruh implementasi WebGPU di berbagai platform, termasuk web.
  • Compute yang Dioptimalkan: Berbagi buffer yang lancar dan bebas salinan antara tugas komputasi dan grafis meningkatkan performa dan menyederhanakan pengembangan dibandingkan dengan API lama.

Target pengguna pustaka ini

Library ini didesain untuk membuat aplikasi berperforma tinggi yang memerlukan akses langsung ke GPU:

  • Filter pemrosesan gambar dan video
  • Visualisasi data
  • Inferensi Machine Learning
  • Game dan simulasi

Non-Tujuan: Ini adalah API grafis, bukan game engine. Anda bertanggung jawab untuk mengelola loop render, matriks kamera, dan grafik adegan Anda sendiri.

Konsep inti WebGPU

Memahami objek WebGPU dasar dan cara interaksinya sangat penting untuk pengembangan WebGPU.

Konsep

Deskripsi

Instance

Titik entri ke WebGPU, yang memberikan akses ke Adapter dan Surface

Adaptor

Mewakili GPU tertentu di perangkat

Perangkat

Koneksi logis Anda ke GPU tempat resource dibuat

Antrean

Mekanisme yang digunakan untuk mengirimkan perintah ke GPU

Shader Module

Kode GPU Anda, yang ditulis dalam WebGPU Shading Language (WGSL)

Pipelines

Objek yang menjelaskan seluruh status GPU (shader, blending) untuk suatu tugas

Bind Group

Mengikat buffer data (misalnya: tekstur) ke shader

Command Encoder

Objek yang digunakan untuk membuat urutan perintah GPU ke dalam buffer perintah