243 votes

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

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

  • Aucun
  • VBoxVGA
  • VMSVGA
  • VBoxSVGA

Dans le manuel d'utilisation, j'ai trouvé ces informations :

Contrôleur graphique : Spécifie le type d'adaptateur graphique utilisé par la machine virtuelle invitée. Notez que vous devez installer les Additions Invitées sur la machine virtuelle 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 machines virtuelles utilisant Linux ou Windows 7 ou ultérieur. Ce contrôleur graphique améliore les performances et le support 3D par rapport à l'option héritée VBoxVGA.
– VBoxVGA : Utilisez ce contrôleur graphique pour les anciens systèmes d'exploitation 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 pas encore lequel choisir et pourquoi je devrais préférer l'un par rapport à l'autre.
Quand devrais-je choisir Aucun ?
VMSVGA est-il meilleur que VBoxSVGA ?
Quel est le problème 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 legacy :

 Adaptateur            Mode EFI                Mode legacy 

 VBoxVGA   ok                               ok          
 VMSVGA    ok dans le menu systemd-boot,         ok          
           puis é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 video=XRESxYRES est ignoré :

+----------+----------------+--------------+
| Adaptateur  |    Mode EFI    | Mode legacy  |
+----------+----------------+--------------+
| VBoxVGA  | fonctionne          | fonctionne        |
| VMSVGA   | ne fonctionne pas   | ne fonctionne pas |
| VBoxSVGA | non 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 une surcharge inutile.

2 votes

J'ai testé les trois d'entre eux sur ma machine virtuelle CentOS 7 avec le gestionnaire de fenêtres i3 fonctionnant dessus en utilisant un moniteur 4k. VBoxSVGA semble légèrement l'emporter sur VMSVGA. VBoxVGA était terrible. Aucun des trois ne fonctionne bien sur l'écran Retina 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 graphisme, c'était lent. J'essaie VBoxSVGA au moins ça s'affiche comme VBX dans les paramètres d'affichage de gnome. Je suis aussi sur un MacBook Pro Milieu 2018, ce commentaire semble m'avoir aidé jusqu'à présent. Merci

195voto

James Mertz Points 390

Basé sur ce que j'ai trouvé dans le code source :

VBoxVGA

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

  • C'est le paramètre 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 avant Windows 7.
  • Il dispose d'une forme de passage de 3D, mais - si je me souviens bien - utilise une approche non sécurisée qui permet au client de décharger toutes les commandes vers le GPU hôte.
  • L'utilisation sur un invité Linux nécessite l'installation des additions invité car cet adaptateur n'est (pas encore) pris en charge par le noyau Linux principal.
  • Prend en charge uniquement OpenGL 1.1 sur les invités Windows 10 en 64 bits et 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 de ne pas provoquer de changement inattendu de comportement ; vous ne perdez pas l'accélération que vous aviez précédemment.

VMSVGA

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

  • Contrairement à ce que dit le manuel, c'est actuellement le paramètre par défaut pour les invités Linux.
  • Il est censé fournir de meilleures performances et une meilleure sécurité que l'ancienne méthode.
  • Cela est pris en charge par le noyau Linux principal en utilisant le pilote SVGA.
  • Prend en charge OpenGL 2.1 sur tous les invités Windows et Linux.
  • Cela pourrait également avoir l'avantage de prendre en charge d'anciens systèmes d'exploitation pour lesquels des ajouts invité VMware étaient disponibles mais pas des ajouts invité VirtualBox. (Je prévois de tester cela avec Windows 9x, ce qui est sinon très difficile à obtenir même avec les graphiques VESA fonctionnant avec VirtualBox)

VBoxSVGA

Cela fournit un dispositif hybride qui fonctionne comme VMSVGA (y compris ses nouvelles capacités d'accélération 3D), mais rapporte le même ancien PCI VID:PID que VBoxVGA.

  • C'est le paramètre par défaut pour les invités Windows.
  • L'avantage de ce mode est que vous pouvez mettre à niveau les VM existantes (qui utilisaient précédemment VBoxVGA et avaient le pilote vidéo VirtualBox installé) sans perdre leurs graphiques - ils voient toujours le même périphérique, jusqu'à ce que vous mettiez à jour les "ajouts invité" à un moment ultérieur pour activer l'accélération 3D.
  • Aussi, parce que c'est toujours VMware SVGA émulé par VirtualBox, choisir cette option et utiliser le pilote VirtualBox peut encore avoir des avantages par rapport à celui de VMware, par exemple, permettre de profiter de fonctionnalités supplémentaires spécifiques à VirtualBox.

"Aucun"

Cela ne représente évidemment aucune émulation graphique. Utilisez-le uniquement si vous fournissez un vrai GPU via le transfert de PCI, ou si votre système n'a absolument besoin d'aucun GPU.

Sources

2 votes

<virtualbox.org/browser/vbox/trunk/src/VBox/Devices/Graphics‌​/…>; notez comment à la fois VBoxSVGA et VMSVGA entraînent 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 à partir d'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 GPU matériel ? 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 très explicitement quand vous devriez les préférer :

- VBoxSVGA : Le contrôleur graphique par défaut pour les nouvelles VM 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 héritée VBoxVGA.

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

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

  • (par inférence) performances légèrement inférieures mais plus de compatibilité avec les anciens OS
  • Ancien OS ou Windows < 7

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

  • Émule un périphérique VMWare
  • probablement le meilleur lorsque votre VM a été initialement configurée sur VMWare et a 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 que vous voulez exécuter la machine sans interface graphique ou via SSH et n'avez pas besoin de l'overhead de l'émulation graphique.
  • pourrait améliorer les performances en supprimant une couche d'émulation

19voto

Luc Points 2323

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

  • VBoxVGA : 60fps +/- 2 (très faible, mais le déplacement d'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 sont exécutés sur le CPU)

Les additions invité étaient déjà mises à jour à partir des dépôts Debian avant qu'elles n'émettent un avertissement de dépréciation de VBoxVGA la première fois, donc je pouvais simplement le changer sans avoir besoin de mettre à jour d'abord. Vérifiez votre version en utilisant dpkg -l | grep virtualbox.

Les additions invité 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 VM a PAE/NX activé, une accélération 3D mais pas d'accélération 2D, 2 CPUs assignés (l'hôte dispose de 2 cœurs 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 VM est centos7 avec cinnamon... mais malheureusement, mon cinnamon signale toujours un rendu logiciel et je peux sentir un retard d'affichage. peut-être que j'essayerai d'utiliser VBoxSVGA au lieu de VMSVGA.

2 votes

Il dépend beaucoup du système hôte et du système invité je suppose. Je lance VirtualBox 6.1.18 sur un Probook Windows 10 i3 3rd Gen et sur un invité Debian Buster avec LXDE, glxgears affiche ~600 fps avec VBoxVGA sans accélération 3D activée, VMSVGA seulement ~500 fps. Lors de l'activation de l'accélération 3D, qui n'est pas vraiment prise en charge par ce HD Graphics 4000, les deux deviennent beaucoup plus lents, ~190 et ~170 fps, VBoxVGA étant toujours plus rapide. Tous testés 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 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 virtualbox-guest-additions ne pouvaient pas 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 de l'invité avec VMSVGA et xUbuntu 18.04, et 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 enregistré/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 d'instantané 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