Seiche : accélération graphique GPU

Le mode graphique accéléré de Cuttlefish utilise l'unité de traitement graphique physique (GPU) de votre machine hôte pour le rendu en transmettant les commandes de rendu invité à votre machine hôte, en exécutant les appels de commandes de rendu sur votre machine hôte et en renvoyant les résultats rendus à l'invité.

Par défaut, le rendu côté invité (par exemple, l'interface utilisateur et la lecture vidéo) sur votre appareil Cuttlefish est géré par SwiftShader. SwiftShader est une implémentation logicielle des API OpenGL et Vulkan. Étant donné que SwiftShader est une implémentation logicielle, il fournit une solution de rendu universellement accessible 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 normal. Le rendu est un problème parallèle qui peut être massivement parallélisé, car les valeurs des pixels peuvent être calculées indépendamment. Les unités de traitement graphique (GPU) sont des unités matérielles qui résolvent ce problème en accélérant le rendu.

Exigences

Le mode graphique accéléré nécessite que l'hôte dispose :

  • Pilote compatible EGL prenant en charge l'extension GL_KHR_surfaceless_context
  • Pilote compatible OpenGL ES
  • Pilote capable de 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 . En utilisant ce mode, les appels d'API OpenGL et Vulkan sont transmis directement à l'hôte.

launch_cvd --gpu_mode=gfxstream

Virgl

Pour utiliser le mode graphique accéléré Virgl, lancez votre appareil Cuttlefish local avec l'indicateur --gpu_mode=drm_virgl .

launch_cvd --gpu_mode=drm_virgl

Lors de l'utilisation du mode graphique accéléré Virgl, les appels de l'API OpenGL sont traduits en une représentation intermédiaire (voir Gallium3D ). La représentation intermédiaire est communiquée à l'hôte et la bibliothèque virglrenderer sur l'hôte traduit la représentation intermédiaire en appels API OpenGL.