Sotong: Akselerasi grafis GPU

Mode grafis akselerasi Cuttlefish menggunakan unit pemrosesan grafis fisik (GPU) mesin host Anda untuk melakukan rendering dengan meneruskan perintah rendering tamu ke mesin host Anda, menjalankan panggilan perintah rendering pada mesin host Anda, dan meneruskan hasil yang dirender kembali ke tamu.

Secara default, rendering sisi tamu (misalnya, UI dan pemutaran video) di perangkat Cuttlefish Anda ditangani oleh SwiftShader. SwiftShader adalah implementasi perangkat lunak dari OpenGL dan Vulkan API. Karena SwiftShader adalah implementasi perangkat lunak, SwiftShader menyediakan solusi rendering yang dapat diakses secara universal untuk Cuttlefish yang mampu berjalan di mesin host mana pun.

Namun, penggunaan SwiftShader tidak sekuat perangkat normal. Rendering adalah masalah paralel yang dapat diparalelkan secara besar-besaran, karena nilai piksel dapat dihitung secara independen. Unit pemrosesan grafis (GPU) adalah unit perangkat keras yang mengatasi masalah ini dengan mempercepat rendering.

Persyaratan

Mode grafis yang dipercepat mengharuskan host memiliki:

  • Driver berkemampuan EGL mendukung ekstensi GL_KHR_surfaceless_context
  • Driver berkemampuan OpenGL ES
  • Pengemudi berkemampuan Vulkan

Gunakan mode grafis yang dipercepat

Aliran Gfx

Untuk menggunakan mode grafis terakselerasi GfxStream, luncurkan perangkat Cuttlefish lokal Anda dengan tanda --gpu_mode=gfxstream . Dengan menggunakan mode ini, panggilan OpenGL dan Vulkan API diteruskan langsung ke host.

launch_cvd --gpu_mode=gfxstream

Perawan

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 grafik akselerasi Virgl, panggilan API OpenGL diterjemahkan ke dalam representasi perantara (lihat Gallium3D ). Representasi perantara dikomunikasikan ke host dan perpustakaan virglrenderer di host menerjemahkan representasi perantara kembali ke panggilan API OpenGL.