Settlefish: accélération graphique du GPU

Le mode graphique accéléré de Cuttlefish utilise les capacités physiques processeur graphique (GPU) 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 affichés à l'invité.

Un appareil Settlefish équipé d'Android 11 ou version ultérieure détecte et utilise des 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.

Cependant, l'utilisation de SwiftShader n'est pas aussi performante qu'un appareil standard. 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 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é de GfxStream, lancez votre Settlefish local appareil avec l'indicateur --gpu_mode=gfxstream. Avec ce mode, OpenGL et Vulkan Les appels d'API 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é par Virgl, les appels d'API OpenGL sont traduits dans une représentation intermédiaire (voir Gallium3D, par exemple). 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.