Sotong: Akselerasi grafis GPU

Mode grafis akselerasi cumi-cumi menggunakan jaringan fisik unit pemrosesan grafis (GPU) untuk rendering dengan meneruskan perintah rendering tamu ke mesin host Anda, menjalankan perintah rendering memanggil mesin host Anda, dan meneruskan hasil yang dirender kembali ke tamu.

Perangkat Cuttlefish yang berjalan di Android 11 atau yang lebih tinggi mendeteksi dan menggunakan grafis yang dipercepat. Jika mesin host tidak mendukung grafis akselerasi atau versi Android adalah Android 10 atau yang lebih rendah, rendering sisi tamu (misalnya, Pemutaran UI dan video) di perangkat Cuttlefish Anda ditangani oleh SwiftShader. SwiftShader adalah implementasi software dari OpenGL API dan Vulkan. Karena SwiftShader adalah implementasi perangkat lunak, yang menyediakan layanan solusi rendering untuk Cuttlefish yang mampu berjalan di mesin {i>host<i} apa pun.

Namun, penggunaan SwiftShader tidak sebaik perangkat biasa. Rendering adalah masalah paralel yang dapat diparalelkan secara besar-besaran, sebagai dapat dihitung secara independen. Unit pemrosesan grafis (GPU) adalah yang dapat 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 mendukung OpenGL ES
  • Driver yang mendukung Vulkan

Menggunakan mode grafis yang dipercepat

GfxStream

Untuk menggunakan mode grafis akselerasi GfxStream, luncurkan Cuttlefish lokal Anda perangkat dengan flag --gpu_mode=gfxstream. Dengan menggunakan mode ini, OpenGL dan Vulkan Panggilan API akan 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). Tujuan representasi perantara dikomunikasikan ke {i>host<i} dan library virglrenderer aktif {i>host<i} menerjemahkan representasi perantara kembali ke panggilan OpenGL API.