Mode grafis yang diakselerasi Cuttlefish menggunakan unit pemrosesan grafis (GPU) fisik mesin host Anda untuk rendering dengan meneruskan perintah rendering tamu ke mesin host, menjalankan panggilan perintah rendering di mesin host, dan meneruskan hasil yang dirender kembali ke tamu.
Perangkat Cuttlefish yang berjalan di Android 11 atau lebih tinggi mendeteksi dan menggunakan grafis yang dipercepat. Jika mesin host tidak mendukung grafik yang dipercepat atau versi Android adalah Android 10 atau yang lebih rendah, rendering sisi tamu (misalnya, UI dan pemutaran video) di perangkat Cuttlefish Anda ditangani oleh SwiftShader. SwiftShader adalah implementasi software OpenGL dan Vulkan API. Karena SwiftShader adalah implementasi software, SwiftShader menyediakan solusi rendering yang dapat diakses secara universal untuk Cuttlefish yang mampu berjalan di mesin host apa pun.
Namun, penggunaan SwiftShader tidak seperforma perangkat normal. Rendering adalah masalah paralel yang dapat diparalelkan secara masif, karena nilai piksel dapat dihitung secara independen. Unit pemrosesan grafis (GPU) adalah unit hardware yang mengatasi masalah ini dengan mempercepat rendering.
Persyaratan
Mode grafis yang dipercepat mengharuskan host memiliki:
- Driver yang mendukung EGL yang mendukung ekstensi
GL_KHR_surfaceless_context
- Driver yang kompatibel dengan OpenGL ES
- Driver yang kompatibel dengan Vulkan
Menggunakan mode grafis yang dipercepat
GfxStream
Untuk menggunakan mode grafis akselerasi GfxStream, luncurkan perangkat Cuttlefish lokal
dengan tanda --gpu_mode=gfxstream
. Dengan mode ini, panggilan API
OpenGL dan Vulkan diteruskan langsung ke host.
launch_cvd --gpu_mode=gfxstream
Virgl
Untuk menggunakan mode grafis akselerasi Virgl, luncurkan perangkat Cuttlefish lokal Anda
dengan flag --gpu_mode=drm_virgl
.
launch_cvd --gpu_mode=drm_virgl
Saat menggunakan mode grafis yang dipercepat Virgl, panggilan OpenGL API akan diterjemahkan menjadi representasi perantara (lihat Gallium3D). Representasi menengah dikomunikasikan ke host dan library virglrenderer pada host akan menerjemahkan representasi perantara kembali ke panggilan OpenGL API.