Le mode graphique accéléré de Cuttlefish utilise la carte graphique (GPU) physique de votre machine hôte pour le rendu en transmettant des commandes de rendu invité à votre machine hôte, en exécutant les appels de commandes de rendu sur votre machine hôte et en transmettant les résultats du rendu à l'invité.
Un appareil Cuttlefish exécutant Android 11 ou version ultérieure détecte et utilise les graphismes accélérés. Si la machine hôte ne prend pas en charge ou la version d'Android Android 10 ou version antérieure, rendu côté invité (par exemple, l'interface utilisateur et la lecture des vidéos) sur votre appareil Cuttlefish est gérée par SwiftShader. SwiftShader est une implémentation logicielle des API OpenGL et Vulkan. En effet, SwiftShader est une implémentation logicielle, elle fournit une solution universellement accessible solution de rendu pour Cuttlefish capable de s'exécuter sur n'importe quelle machine hôte.
Toutefois, l'utilisation de SwiftShader n'est pas aussi performante que sur un appareil normal. L'affichage est un problème parallèle qui peut être massivement parallélisé, sous forme de code les valeurs peuvent être calculées indépendamment. Les processeurs graphiques (GPU) d'unités matérielles qui résolvent ce problème en accélérant le rendu.
Conditions requises
Le mode graphique accéléré nécessite que l'hôte dispose des éléments suivants :
- Pilote compatible avec EGL compatible avec l'extension
GL_KHR_surfaceless_context
- Pilote compatible avec OpenGL ES
- Pilote compatible avec Vulkan
Utiliser les modes graphiques accélérés
GfxStream
Pour utiliser le mode graphique accéléré GfxStream, lancez votre appareil Cuttlefish local avec l'indicateur --gpu_mode=gfxstream
. Avec ce mode, les appels d'API OpenGL et Vulkan sont transférés directement à l'hôte.
launch_cvd --gpu_mode=gfxstream
Virgl
Pour utiliser le mode graphique accéléré par Virgl, lancez votre appareil Cuttlefish local
avec l'indicateur --gpu_mode=drm_virgl
.
launch_cvd --gpu_mode=drm_virgl
Lorsque vous utilisez le mode graphique accéléré Virgl, les appels d'API OpenGL sont traduits en représentation intermédiaire (voir Gallium3D). La la représentation intermédiaire est communiquée à l'hôte. Bibliothèque virglrenderer activée l'hôte traduit la représentation intermédiaire en appels d'API OpenGL.