243 votes

Quelles sont les différences entre VBoxVGA, VMSVGA et VBoxSVGA dans VirtualBox?

VirtualBox 6.0 propose un nouveau paramètre appelé Contrôleur graphique. Il existe quatre options parmi lesquelles choisir :

  • Aucun
  • VBoxVGA
  • VMSVGA
  • VBoxSVGA

Dans le manuel de l'utilisateur, j'ai trouvé ces informations :

Contrôleur graphique : Spécifie le type d'adaptateur graphique utilisé par la VM invitée. Notez que vous devez installer les Additions Invité sur la VM invitée pour spécifier le contrôleur graphique VBoxSVGA ou VMSVGA. Les options suivantes sont disponibles :
– VBoxSVGA : Le contrôleur graphique par défaut pour les nouvelles VM utilisant Linux ou Windows 7 ou ultérieur. Ce contrôleur graphique améliore les performances et le support 3D par rapport à l'option VBoxVGA héritée.
– VBoxVGA : Utilisez ce contrôleur graphique pour les anciens OS invités. Il s'agit du contrôleur graphique par défaut pour les versions de Windows antérieures à Windows 7.
– VMSVGA : Utilisez ce contrôleur graphique pour émuler un périphérique graphique VMware SVGA.
– Aucun : N'émule aucun type d'adaptateur graphique.

Mais cela ne décrit toujours pas lequel et pourquoi je devrais le préférer.
Quand devrais-je choisir Aucun ?
VMSVGA est-il meilleur que VBoxSVGA ?
Qu'est-ce qui ne va pas avec VBoxVGA ?

J'ai testé le démarrage de archlinux-2019.02.01-x86_64.iso avec VirtualBox 6.0.4 en modes efi et hérité :

 Adaptateur           Mode EFI              Mode hérité 

 VBoxVGA   ok                               ok          
 VMSVGA    ok dans le menu systemd-boot,    ok          
           ensuite écran noir pendant un certain temps              
           au démarrage, puis devient ok                
 VBoxSVGA  écran noir                     ok          

J'ai également remarqué qu'avec VMSVGA et VBoxSVGA, le paramètre vidéo=XRESxYRES est ignoré :

+----------+----------------+--------------+
| Adaptateur|    Mode EFI    | Mode hérité  |
+----------+----------------+--------------+
| VBoxVGA  | fonctionne      | fonctionne    |
| VMSVGA   | ne fonctionne pas| ne fonctionne pas |
| VBoxSVGA | n'a pas pu être testé | ne fonctionne pas |
+----------+----------------+--------------+

Mais il est toujours possible de définir certaines de ces résolutions ignorées après le démarrage avec fbset.

0 votes

Je ne recommanderais pas d'utiliser EFI dans une machine virtuelle à moins que ce ne soit absolument nécessaire. C'est un surcroît inutile.

2 votes

J'ai testé les trois sur ma vm CentOS 7 avec le gestionnaire de fenêtres i3 en cours d'exécution dessus en utilisant un moniteur 4k. VBoxSVGA semble légèrement l'emporter sur VMSVGA. VBoxVGA était terrible. Aucun des trois ne fonctionnait bien sur l'écran rétina de mon MacBook Pro 2018. Il y a tellement de retard qu'il est presque inutilisable.

0 votes

@Shadoninja je me remets à Linux et j'ai installé Debian aujourd'hui dans VirtualBox. Rien ne fonctionnait en termes de graphiques, c'était si lent. J'essaie VBoxSVGA au moins ça apparaît comme VBX dans les paramètres d'affichage de GNOME. Je suis également sur un MacBook Pro Milieu 2018, ce commentaire semble avoir aidé jusqu'à présent. Merci

195voto

James Mertz Points 390

Sur la base de ce que j'ai trouvé dans le code source:

VBoxVGA

Ceci émule un adaptateur graphique spécifique à VirtualBox, tout comme dans les versions précédentes (<6.0.0).

  • C'est la valeur par défaut pour les images créées pour les versions précédentes de VirtualBox (<6.0.0) et pour les invités Windows antérieurs à Windows 7.
  • Il possède une forme de passage 3D, mais - si je me souviens correctement - utilise une approche non sécurisée qui permet simplement à l'invité de décharger toutes les commandes vers le GPU hôte.
  • Pour l'utiliser sur un invité Linux, il faut installer les additions invité car cet adaptateur n'est pas (encore) pris en charge par le noyau Linux principal.
  • Prise en charge uniquement par OpenGL 1.1 sur Windows 10 64 bits et pour tous les invités Linux.

Cette option existe probablement simplement pour assurer la continuité - après la mise à niveau vers 6.0, tous les anciens VM ont ce mode sélectionné automatiquement afin qu'il n'y ait aucun changement inattendu de comportement; vous ne perdez pas l'accélération que vous aviez précédemment.

VMSVGA

Ceci émule l'adaptateur graphique VMware Workstation avec la méthode d'accélération "VMware SVGA 3D".

  • Contrairement à ce que dit le manuel, c'est actuellement la valeur par défaut pour les invités Linux.
  • Il est censé offrir de meilleures performances et une meilleure sécurité que l'ancienne méthode.
  • C'est pris en charge par le noyau Linux principal en utilisant le pilote SVGA.
  • Prise en charge de OpenGL 2.1 pour tous les invités Windows et Linux.
  • Cela pourrait également avoir l'avantage de prendre en charge les anciens systèmes d'exploitation pour lesquels les additions invité VMware étaient disponibles mais pas les additions invité VirtualBox. (Je prévois de tester cela avec Windows 9x, qui est sinon une énorme douleur pour faire fonctionner même les graphiques VESA avec VirtualBox)

VBoxSVGA

Ceci fournit un périphérique hybride qui fonctionne comme VMSVGA (y compris ses nouvelles fonctionnalités d'accélération 3D), mais signale le même ancien PCI VID:PID que VBoxVGA.

  • C'est la valeur par défaut pour les invités Windows.
  • L'avantage de ce mode est que vous pouvez mettre à niveau les VM existantes (qui utilisaient auparavant VBoxVGA et avaient le pilote vidéo VirtualBox installé) sans perdre leurs graphiques dans le processus - ils voient toujours le même dispositif, jusqu'à ce que vous mettiez à jour ultérieurement les "additions invité" pour activer l'accélération 3D.
  • En outre, car c'est toujours un VMware SVGA émulé par VirtualBox, choisir cette option et utiliser le pilote VirtualBox pourrait toujours avoir des avantages par rapport à celui de VMware, par exemple, permettre d'utiliser des fonctionnalités supplémentaires spécifiques à VirtualBox.

"None"

Ce n'est évidemment pas une émulation graphique. Utilisez-le uniquement si vous fournissez un véritable GPU via un transfert PCI, ou si votre système n'a absolument pas besoin d'un GPU.

Sources

2 votes

<virtualbox.org/browser/vbox/trunk/src/VBox/Devices/Graphics‌​/…>; notez comment VBoxSVGA et VMSVGA donnent tous deux VMSVGAEnabled=true et VMSVGA3dEnabled=${3DEnabled}, la seule différence entre eux étant VMSVGAPciId.

2 votes

@galgaesh VBoxVGA est pris en charge par les pilotes /staging/vboxvideo depuis environ Linux 4.14.

0 votes

En d'autres termes, VBoxVGA est-il meilleur pour exécuter des opérations non graphiques accélérées par le GPU matériel également? oclvanitygen? "approche qui permet simplement à l'invité de transmettre toutes les commandes au GPU hôte."

33voto

Ana cleto Points 11

Mais ils vous disent assez explicitement quand vous devriez les préférer:

- VBoxSVGA: Le contrôleur graphique par défaut pour les nouvelles machines virtuelles qui utilisent Linux ou Windows 7 ou ultérieur. Ce contrôleur graphique améliore les performances et le support 3D par rapport à l'option legacy VBoxVGA.

  • Linux ou Windows >7
  • améliore les performances et le support 3D

- VBoxVGA: Utilisez ce contrôleur graphique pour les anciens systèmes d'exploitation invités. C'est le contrôleur graphique par défaut pour les versions de Windows antérieures à Windows 7.

  • (par déduction) performances légèrement inférieures mais une compatibilité accrue avec les anciens systèmes d'exploitation
  • Ancien OS ou Windows < 7

- VMSVGA: Utilisez ce contrôleur graphique pour émuler un périphérique graphique VMware SVGA.

  • Emule un périphérique VMWare
  • probablement le meilleur choix lorsque votre machine virtuelle a été initialement configurée sur VMWare et dispose de leurs outils installés
  • peut ne pas être aussi rapide que les cartes VBox car elle essaie d'être compatible avec autre chose.

- Aucun: N'émule aucun type d'adaptateur graphique.

  • vous ne voulez pas d'adaptateur graphique
    c'est-à-dire vous voulez exécuter la machine en mode sans tête ou via SSH et n'avez pas besoin de la surcharge d'émulation graphique.
  • peut améliorer les performances car il supprime une couche d'émulation

19voto

Luc Points 2323

La performance est une différence. En testant avec glxgears, j'obtiens :

  • VBoxVGA : 60fps +/- 2 (très bas, mais déplacer une fenêtre n'est pas fluide donc cela semble plausible)
  • VMSVGA : 1570fps +/- 50 (après un redémarrage, j'obtiens 1300fps +/- 200 ?!)
  • VBoxSVGA : 970fps +/- 30 (dans ce mode, Cinnamon me prévient que les graphismes de l'environnement de bureau fonctionnent sur le CPU)

Les additions invités étaient déjà mises à jour à partir des dépôts Debian avant qu'il n'apparaisse le premier avertissement de dépréciation de VBoxVGA, donc je pourrais simplement le changer sans avoir besoin de mettre à jour d'abord. Vérifiez votre version en utilisant dpkg -l | grep virtualbox.

Les additions invités sont en version 6.0.4, mesa-utils (contenant glxgears) 8.4.0-1+b1, le système d'exploitation de base est Debian 10 (Buster) avec Cinnamon.

La machine virtuelle a PAE/NX activé, l'accélération 3D mais pas d'accélération 2D, 2 CPUs assignés (l'hôte a 2 coeurs avec 2 threads chacun), PV par défaut, VT-x/AMD-V activé, et pagination imbriquée.

0 votes

Mon hôte est centos7, la machine virtuelle est centos7 avec cinnamon... mais malheureusement mon cinnamon indique toujours un rendu logiciel et je ressens des lenteurs de l'interface utilisateur. peut-être que je vais essayer d'utiliser VBoxSVGA au lieu de VMSVGA.

2 votes

Il dépend beaucoup du système hôte et invité je suppose. J'utilise VirtualBox 6.1.18 sur un Probook Windows 10 i3 3ème génération et sur un invité Debian Buster with LXDE, glxgears montre environ 600 ips avec VBoxVGA sans accélération 3D activée, VMSVGA seulement ~500 ips. Lors de l'activation de l'accélération 3D, qui n'est pas vraiment prise en charge par cette HD Graphics 4000, les deux deviennent beaucoup plus lents, environ 190 et 170 ips, VBoxVGA étant toujours plus rapide. Tout cela testé avec le pilote d'affichage xserver-xorg-video-vmware d'ailleurs, qui est étrangement utilisé pour l'adaptateur VBoxVGA aussi. Donc si les performances sont importantes pour ce que l'on fait sur un affichage de VM, testez vous-même.

4voto

Necktwi Points 321

J'ai pu définir automatiquement la résolution de l'invité avec le compositeur wayland uniquement en utilisant VBoxSVGA. Les additions invité VirtualBox n'ont pas pu redimensionner automatiquement l'affichage de l'invité avec wayland lors de l'utilisation de VMSVGA.

0 votes

Je n'ai pas obtenu de redimensionnement automatique des invités avec VMSVGA et xUbuntu 18.04, mais VBoxSVGA fonctionne (mais seulement après s'être connecté à xfce)

0voto

HrdWorker Points 1

VBoxVGA se souvient et restaure les ajustements de taille de fenêtre des invités Windows. VBoxSVGA NE se souvient PAS des ajustements de taille.

Je veux que mes invités Windows s'ouvrent avec une taille d'affichage de 1240x712. Si j'utilise VBoxSVGA, les invités s'ouvrent toujours à 1024x768 et je dois ensuite les redimensionner.

Si j'utilise VBoxVGA, l'affichage est sauvegardé/restauré, les hôtes s'ouvrent à 1240x712 sans autre ajustement.

En fait, si le paramètre "Ajuster la taille de la fenêtre" est utilisé pour changer l'affichage, l'arrêt de l'invité Windows et la prise instantanée préserveront le nouveau paramètre. Le VBoxSVGA ignore les changements de taille en cours d'exécution.

0 votes

Cela ressemble légèrement à un package "Guest Additions" obsolète...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X