Mürekkepbalığı: GPU grafik hızlandırması

Ahtapot'un hızlandırılmış grafik modu, ana makinenize konuk oluşturma komutlarını ileterek, ana makinenizde oluşturma komutu çağrılarını çalıştırarak ve oluşturulan sonuçları konuğa geri ileterek oluşturma işlemi için ana makinenizin fiziksel grafik işleme birimini (GPU) kullanır.

Android 11 veya sonraki bir sürümün yüklü olduğu Cuttlefish cihazlar, hızlandırılmış grafikleri algılar ve kullanır. Ana makine hızlandırılmış grafikleri desteklemiyorsa veya Android sürümü Android 10 veya daha eskiyse Cuttlefish cihazınızdaki konuk tarafı oluşturma (ör. kullanıcı arayüzü ve video oynatma) işlemi SwiftShader tarafından yönetilir. SwiftShader, OpenGL ve Vulkan API'lerinin yazılım uygulamasıdır. SwiftShader bir yazılım uygulaması olduğundan, Cuttlefish için herhangi bir ana makinede çalışabilen, herkese açık bir oluşturma çözümü sunar.

Ancak SwiftShader'ı kullanmak normal bir cihaz kadar performanslı değildir. Piksel değerleri bağımsız olarak hesaplanabileceğinden, oluşturma işlemi büyük ölçekte paralelleştirilebilecek paralel bir sorundur. Grafik işlem birimleri (GPU'lar), oluşturmayı hızlandırarak bu sorunu gideren donanım birimleridir.

Şartlar

Hızlandırılmış grafik modu için ana makinede aşağıdakiler bulunmalıdır:

  • GL_KHR_surfaceless_context uzantısını destekleyen EGL özellikli sürücü
  • OpenGL ES uyumlu sürücü
  • Vulkan uyumlu sürücü

Hızlandırılmış grafik modlarını kullanma

GfxStream

GfxStream hızlandırılmış grafik modunu kullanmak için yerel Cuttlefish cihazınızı --gpu_mode=gfxstream işaretiyle başlatın. Bu modda, OpenGL ve Vulkan API çağrıları doğrudan ana makineye yönlendirilir.

launch_cvd --gpu_mode=gfxstream

Virgl

Virgl hızlandırılmış grafik modunu kullanmak için yerel Cuttlefish cihazınızı --gpu_mode=drm_virgl işaretiyle başlatın.

launch_cvd --gpu_mode=drm_virgl

Virgl hızlandırılmış grafik modu kullanıldığında OpenGL API çağrıları bir ara temsile dönüştürülür (Gallium3D'ye bakın). Ara temsil, ana makineye iletilir ve ana makinedeki virglrenderer kitaplığı, ara temsili OpenGL API çağrılarına geri çevirir.