J'utilise 12.04 en tant qu'invité sur mon ordinateur portable depuis un certain temps maintenant et cela fonctionne parfaitement.
Aujourd'hui, un collègue m'a interrogé sur les performances 3D de l'invité. Il m'est jamais venu à l'esprit d'utiliser des éléments 3D sophistiqués sur l'invité, mais les résultats m'intéressaient quand même. J'ai donc activé le 3D acceleration
dans le menu VirtualBox de mon installation et redémarré la machine virtuelle.
Lancer glxgears
donne des avertissements étranges, plus la fenêtre avec les engrenages rotatifs reste noire (j'ai posté la sortie de la console ci-dessous).
Lancer glxgears
sans l'accélération 3D activée fonctionne, je me retrouve avec ~ 570 FPS et aucun avertissement.
Les faibles FPS ne sont pas mon problème ici, mais la fenêtre noire de glxgears est étrange. Mon hypothèse est qu'il y a un problème avec le pilote nVidia du système hôte? (regardant le suffixe NV
des avertissements)
ortang@vbox-12-04:~$ glxgears
OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table
369 frames in 5.0 seconds = 73.647 FPS
L'hôte est un ordinateur portable Windows 7(64bit) Dell (Precision E4600) doté d'un processeur i7-2820QM
et d'une carte graphique nVidia Quadro 2000M
(version du pilote 311.10).
L’invité est une installation à jour 12.04 LTS, avec des addons invités installés.
Quelques informations supplémentaires, exécutant l'outil de test de support de l'unité:
ortang@vbox-12-04:~$ /usr/lib/nux/unity_support_test -p
OpenGL Warning: glFlushVertexArrayRangeNV not found in mesa table
OpenGL Warning: glVertexArrayRangeNV not found in mesa table
OpenGL Warning: glCombinerInputNV not found in mesa table
OpenGL Warning: glCombinerOutputNV not found in mesa table
OpenGL Warning: glCombinerParameterfNV not found in mesa table
OpenGL Warning: glCombinerParameterfvNV not found in mesa table
OpenGL Warning: glCombinerParameteriNV not found in mesa table
OpenGL Warning: glCombinerParameterivNV not found in mesa table
OpenGL Warning: glFinalCombinerInputNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterfvNV not found in mesa table
OpenGL Warning: glGetCombinerOutputParameterivNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterfvNV not found in mesa table
OpenGL Warning: glGetFinalCombinerInputParameterivNV not found in mesa table
OpenGL Warning: glDeleteFencesNV not found in mesa table
OpenGL Warning: glFinishFenceNV not found in mesa table
OpenGL Warning: glGenFencesNV not found in mesa table
OpenGL Warning: glGetFenceivNV not found in mesa table
OpenGL Warning: glIsFenceNV not found in mesa table
OpenGL Warning: glSetFenceNV not found in mesa table
OpenGL Warning: glTestFenceNV not found in mesa table
OpenGL vendor string: Humper
OpenGL renderer string: Chromium
OpenGL version string: 2.1 Chromium 1.9
Not software rendered: yes
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes
Unity 3D supported: yes
L'interface graphique fonctionne bien, cependant je n'ai pas activé de trucs sophistiqués (tous par défaut).
J'ai trouvé des liens qui indiquent que l'accélération 3D fonctionne bien sur un invité de 12.04, ils exécutent même des jeux sans aucune perte de performance majeure.
J'ai trouvé un message similaire sur stackoverflow mais il a été fermé comme sujet:
Tout conseil pour résoudre ce problème serait gentil!
Les pilotes vidéo du package Guest Additions sont simplement un proxy entre le système d'exploitation invité et les pilotes vidéo de l'hôte (avec certaines limitations, telles que 16 (modifiable) Mo de VRAM). Cela signifie que les mêmes erreurs peuvent survenir même si le système d'exploitation fonctionnait avec des pilotes NVidia mis à jour (vous pouvez utiliser les pilotes propriétaires - pour les installer, exécutez simplement le fichier .run à partir d'un shell) ou, éventuellement, seulement SANS les pilotes mis à jour.
Il est possible que Windows 7 n'inclue pas (du moins, je suppose que non) les vrais pilotes NVidia, mais au mieux compatibles mais moins puissants (comme ceux que l'on trouvait à l'origine sur Ubuntu). Si c'est le cas, vous devez mettre à jour les pilotes Host à partir de ICI !
Avez-vous installé les outils Virtualbox Guest Additions sur la machine virtuelle? Une fois que la machine est en marche, allez dans l'onglet de menu qui dit périphériques, descendez à la dernière option du menu et appuyez sur l'option Insérer un CD avec ajouts à Gest, vous verrez un CD démarrer à l'intérieur du système d'exploitation, installez les pilotes et vous obtiendrez de meilleures performances, espérons que cela aide.