Der beschleunigte Grafikmodus von Cuttlefish verwendet die physischen Grafikprozessor (GPU) für das Rendering durch Übergabe von Rendering-Befehlen als Gast zu Ihrem Hostcomputer senden und die Rendering-Befehlsaufrufe auf Ihrem Hostcomputer ausführen, und übergibt die gerenderten Ergebnisse an den Gast.
Ein Sepia-Gerät mit Android 11 oder höher erkennt und verwendet beschleunigte Grafiken. Wenn der Hostcomputer keine oder die Android-Version Android 10 oder niedriger, clientseitiges Rendering (z. B. UI und Videowiedergabe) auf Ihrem Cuttlefish-Gerät wird von SwiftShader verwaltet. SwiftShader ist eine Softwareimplementierung der OpenGL und Vulkan APIs. Weil SwiftShader ist eine Softwareimplementierung, die eine universell zugängliche Rendering-Lösung für Cuttlefish, die auf jedem Host-Computer ausgeführt werden kann.
SwiftShader ist jedoch nicht so leistungsfähig wie ein normales Gerät. Das Rendering ist ein paralleles Problem, das massiv parallelisiert werden kann, da Pixelwerte unabhängig berechnet werden können. Graphics Processing Units (GPUs) Hardwareeinheiten, die dieses Problem lösen, indem sie das Rendering beschleunigen.
Voraussetzungen
Für den beschleunigten Grafikmodus sind folgende Voraussetzungen erforderlich:
- EGL-fähiger Treiber, der die
GL_KHR_surfaceless_context
-Erweiterung unterstützt - OpenGL ES-fähiger Treiber
- Vulkan-kompatibler Treiber
Beschleunigte Grafikmodi verwenden
GfxStream
Um den beschleunigten Grafikmodus von GfxStream zu verwenden, starte deinen lokalen Tintenfisch
Gerät mit dem Flag --gpu_mode=gfxstream
. In diesem Modus werden OpenGL- und Vulkan-API-Aufrufe direkt an den Host weitergeleitet.
launch_cvd --gpu_mode=gfxstream
Virgl
Wenn Sie den beschleunigten Grafikmodus von Virgl verwenden möchten, starten Sie Ihr lokales Cuttlefish-Gerät mit dem Flag --gpu_mode=drm_virgl
.
launch_cvd --gpu_mode=drm_virgl
Bei Verwendung des Virgl-beschleunigten Grafikmodus werden OpenGL API-Aufrufe übersetzt in eine Zwischendarstellung umwandeln (siehe Gallium3D. Die Die zwischengeschaltete Darstellung wird an den Host und die virglrenderer-Bibliothek aktiviert übersetzt der Host die dazwischenliegende Darstellung zurück in OpenGL API-Aufrufe.