Mürekkep balığı: 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 önceki bir sürümse Cuttlefish cihazınızdaki konuk tarafı oluşturma (örneğin, kullanıcı arayüzü ve video oynatma) SwiftShader tarafından gerçekleştirilir. SwiftShader, OpenGL ve Vulkan API'lerinin bir yazılım uygulamasıdır. SwiftShader bir yazılım uygulaması olduğundan, tüm ana makinelerde çalışabilen Cuttlefish için evrensel olarak erişilebilir bir oluşturma çözümü sağlar.

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

Şartlar

Hızlandırılmış grafik modu, ana makinede şunları gerektirir:

  • 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ı kullan

GfxAkışı

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ılırken, OpenGL API çağrıları ara gösterime dönüştürülür (bkz. Gallium3D). Ara temsil, ana makineye iletilir ve ana makinedeki virglrenderer kitaplığı, ara temsili OpenGL API çağrılarına geri çevirir.