Mürekkep balığı: GPU grafik hızlandırması

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

Android 11 veya sonraki sürümleri çalıştıran bir Mürekkep balığı cihazı, 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 performans göstermez. 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.

Gereksinimler

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 özellikli sürücü
  • Vulkan özellikli 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 mod kullanıldığında, OpenGL ve Vulkan API çağrıları doğrudan ana makineye yönlendirilir.

launch_cvd --gpu_mode=gfxstream

Virgül

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 gösterim ana makineye iletilir ve ana makinedeki virglrenderer kitaplığı, ara gösterimi OpenGL API çağrılarına geri çevirir.