VirtualBox 6.0 provides a new setting called Graphics Controller. There are four options to choose from:
- None
- VBoxVGA
- VMSVGA
- VBoxSVGA
In the user manual I have found this information:
Graphics Controller: Specifies the graphics adapter type used by the guest VM. Note that you must install the Guest Additions on the guest VM to specify the VBoxSVGA or VMSVGA graphics controller. The following options are available:
– VBoxSVGA: The default graphics controller for new VMs that use Linux or Windows 7 or later. This graphics controller improves performance and 3D support when compared to the legacy VBoxVGA option.
– VBoxVGA: Use this graphics controller for legacy guest OSes. This is the default graphics controller for Windows versions before Windows 7.
– VMSVGA: Use this graphics controller to emulate a VMware SVGA graphics device.
– None: Does not emulate a graphics adapter type.
But still it does not describe which of them and why should I prefer.
When should I choose None?
Is VMSVGA better than VBoxSVGA?
What is wrong with VBoxVGA?
I have tested booting of archlinux-2019.02.01-x86_64.iso with virtualbox 6.0.4 in efi and legacy modes:
┌──────────┬─────────────────────────────────┬─────────────┐
│ Adapter │ EFI mode │ Legacy mode │
├──────────┼─────────────────────────────────┼─────────────┤
│ VBoxVGA │ ok │ ok │
│ VMSVGA │ ok in systemd-boot menu, │ ok │
│ │ then black screen for some time │ │
│ │ when booting, then becomes ok │ │
│ VBoxSVGA │ black screen │ ok │
└──────────┴─────────────────────────────────┴─────────────┘
Also I have noticed that with VMSVGA and VBoxSVGA passing video=XRESxYRES parameter is ignored:
+----------+----------------+--------------+
| Adapter | EFI mode | Legacy mode |
+----------+----------------+--------------+
| VBoxVGA | works | works |
| VMSVGA | doesn't work | doesn't work |
| VBoxSVGA | could not test | doesn't work |
+----------+----------------+--------------+
But it is still possible to set some of that ignored resolutions after boot with fbset.
Best Answer
Based on what I've found in the source code:
VBoxVGA
This emulates a graphics adapter specific to VirtualBox, the same as in previous versions (<6.0.0).
This option likely exists just to provide continuity – after upgrading to 6.0, all old VMs have this mode selected automatically so there's no unexpected change in behavior; you don't lose whatever acceleration you previously had.
VMSVGA
This emulates the VMware Workstation graphics adapter with the "VMware SVGA 3D" acceleration method.
VBoxSVGA
This provides a hybrid device that works like VMSVGA (including its new 3D acceleration capabilities), but reports the same old PCI VID:PID as VBoxVGA.
"None"
This is, obviously, no emulated graphics at all. Only use it if you provide a real GPU via PCI passthrough, or if your system absolutely doesn't need a GPU.
Sources