VirtualBox 6.0提供了一个称为“图形控制器”的新设置。有四个选项可供选择:



VBoxVGA
VMSVGA
VBoxSVGA

在用户手册中我有找到了以下信息:


图形控制器:指定来宾VM使用的图形适配器类型。请注意,您必须在来宾VM上安装来宾Additions,才能指定VBoxSVGA或VMSVGA图形控制器。可以使用以下选项:
– VBoxSVGA:使用Linux或Windows 7或更高版本的新VM的默认图形控制器。与旧版VBoxVGA选件相比,此图形控制器提高了性能和3D支持。– VBoxVGA:将此图形控制器用于旧版来宾OS。这是Windows 7之前的Windows版本的默认图形控制器。
-VMSVGA:使用此图形控制器来模拟VMware SVGA图形设备。
-无:不模拟图形适配器类型。


但是仍然没有描述它们中的哪一个,为什么我更喜欢。
我什么时候应该选择None?
VMSVGA是否比VBoxSVGA更好?
什么是VBoxVGA错误吗?

我已在efi和旧模式下使用virtualbox 6.0.4测试了archlinux-2019.02.01-x86_64.iso的启动:

┌──────────┬─────────────────────────────────┬─────────────┐
│ 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          │
└──────────┴─────────────────────────────────┴─────────────┘


我还注意到,使用VMSVGA和VBoxSVGA传递的video = XRESxYRES参数被忽略:

+----------+----------------+--------------+
| Adapter  |    EFI mode    | Legacy mode  |
+----------+----------------+--------------+
| VBoxVGA  | works          | works        |
| VMSVGA   | doesn't work   | doesn't work |
| VBoxSVGA | could not test | doesn't work |
+----------+----------------+--------------+


但是仍然可以设置一些被忽略的分辨率使用fbset引导后。

评论

除非绝对需要,否则我不建议在虚拟机中使用EFI。这是无用的开销。

我在CentOS 7 vm上使用4k监视器在i3窗口管理器上运行了它们,对它们全部进行了测试。 VBoxSVGA似乎略胜于VMSVGA。 VBoxVGA太糟糕了。这三个在我的2018 MacBook Pro视网膜显示屏上都无法正常工作。太多的延迟几乎无法使用。

#1 楼

基于我在源代码中找到的内容:

VBoxVGA

它模拟特定于VirtualBox的图形适配器,与以前的版本相同(<6.0.0) 。


这是为以前版本的VirtualBox(<6.0.0)和Windows 7之前的Windows guest虚拟机创建的图像的默认设置。
它具有某种形式的3D直通,但是-如果我没记错的话-使用了一种不安全的方法,该方法只能让guest虚拟机将所有命令都转储到主机GPU。
在Linux guest虚拟机上使用它需要安装guest虚拟机附加功能,因为该适配器尚未安装(尚未)主线Linux内核支持。
仅在64位Windows 10和所有Linux来宾系统上支持OpenGL 1.1。

该选项可能仅是为了提供连续性-升级到6.0后,所有旧VM均具有此模式是自动选择的,因此不会出现意外的行为更改;您不会失去以前拥有的任何加速功能。

VMSVGA

这将使用“ VMware SVGA 3D”加速方法模拟VMware Workstation图形适配器。


与手册中所说的相反,这是Linux guest虚拟机的默认设置。
它应该提供比旧方法更好的性能和安全性。
主线Linux内核使用SVGA驱动程序。
在所有Windows和Linux来宾系统上都支持OpenGL 2.1。
它还具有支持旧操作系统的优势,该操作系统具有VMware来宾附加功能,但不提供VirtualBox来宾附加功能。 (我计划在Windows 9x上对此进行测试,否则,即使使用VirtualBox也无法使用VESA图形,这将是一个巨大的痛苦)。


VBoxSVGA

该设备的工作方式类似于VMSVGA(包括其新的3D加速功能),但报告的旧PCI VID:PID与VBoxVGA相同。


这是Windows guest虚拟机的默认设置。
这种模式的优势在于,您可以升级现有的VM(以前使用VBoxVGA并安装了VirtualBox Video驱动程序),并且在此过程中不会丢失其图形–在升级“ guest虚拟机”之前,它们仍会看到相同的设备。
,因为它仍然是VirtualBox所仿真的VMware SVGA,所以选择此选项并使用VirtualBox驱动程序可能仍比VMware更具优势,例如允许使用特定于VirtualBox的其他功能。

“无”

显然,这根本不是仿真图形。仅当通过PCI直通提供真正的GPU或系统绝对不需要GPU时才使用它。

资源



VirtualBox手册第3.6章。显示设置
VirtualBox VGA源代码


评论


;请注意,VBoxSVGA和VMSVGA两者如何导致VMSVGAEnabled = true和VMSVGA3dEnabled = $ {3DEnabled},两者之间的唯一区别是VMSVGAPciId。

–user1686
19年2月8日在5:40

从大约Linux 4.14开始,驱动程序/登台/ vboxvideo支持@galgaesh VBoxVGA。

–user1686
19年2月15日在15:12

换句话说,VBoxVGA更适合运行硬件GPU加速的非图形操作吗? oclvanitygen? “仅允许访客将所有命令转储到主机GPU的方法。”

– Willtech
19年3月18日在9:22

@Willtech:显然没有;它仍然有某种翻译器。以前,我给人的印象是没有,但实际上不可能是那样,因为一旦尝试绘制任何内容,它就会破坏主机屏幕的内容。

–user1686
19年3月18日在10:20

我不知道它是否特定于我的操作系统(BionicPup 6.0),但是我发现在使用VMSVGA模式时无法绘制元素以及在文本模式下完全无法绘制元素时遇到了问题。 (我曾经认为这可能对加快渲染速度很有用,因为即使所有东西都能正确编译,Guest Additions也不会安装VBoxVGA图形驱动程序。)以前无法正常工作的应用程序无法启动。

– trlkly
19年7月25日在7:26



#2 楼

但是它们确实明确告诉了您何时应该使用它们:


– VBoxSVGA:使用Linux或Windows 7或更高版本的新VM的默认图形控制器。与传统的VBoxVGA选件相比,此图形控制器提高了性能和3D支持。



Linux或Windows> 7
改进性能和3D支持


– VBoxVGA:将此图形控制器用于旧版来宾操作系统。这是Windows 7之前的Windows版本的默认图形控制器。




(推断)性能略低,但与旧OS的兼容性更好。
旧OS或Windows <7


– VMSVGA:使用此图形控制器来仿真VMware SVGA图形设备。



模拟VMWare设备
最好在最初在VMWare上安装VM并安装其工具的情况下
可能不如VBox卡,因为它试图与其他产品兼容。


–无:不模拟图形适配器类型。




您不需要图形适配器
ie您想无头运行计算机或通过SSH运行计算机,而无需模拟图形的开销。
由于它可以删除层或模拟,因此可以提高性能。


#3 楼

性能是差异之一。使用glxgears进行测试,我得到:


VBoxVGA:60fps +/- 2(非常低,但是移动窗口并不平滑,因此似乎合理)
VMSVGA:1570fps +/- 50(重新启动后,我得到1300fps +/- 200吗?!)
VBoxSVGA:970fps +/- 30(在这种模式下,Cinnamon警告我桌面环境的图形正在CPU上运行)

来宾添加项已经从Debian存储库中进行了更新,然后才第一次产生VBoxVGA弃用警告,因此我可以直接切换它而无需先更新。使用dpkg -l | grep virtualbox检查您的版本。

来宾添加的版本是6.0.4,mesa-utils(包含glxgears)8.4.0-1+b1,基本操作系统是带有肉桂色的Debian 10(Buster)。

VM具有已启用PAE / NX,3D加速但没有2D加速,已分配2个CPU(主机具有2个内核,每个内核具有2个线程),PV默认值,已启用VT-x / AMD-V和嵌套分页。

评论


我的主机是centos7,虚拟机是带有肉桂的centos7 ...但不幸的是,我的肉桂仍然报告了软件渲染,并且我感觉到UI滞后。也许我会尝试使用VBoxSVGA而不是VMSVGA。

–特雷弗·博伊德·史密斯(Trevor Boyd Smith)
20/12/16在18:30

#4 楼

我只能使用wayland使用VBoxSVGA合成器自动设置来宾的分辨率。使用virtualbox-guest-additionsauto-resize guest display无法与wayland一起使用VMSVGA

评论


我也没有通过VMSVGA和xUbuntu 18.04来自动调整访客大小,并且VBoxSVGA可以工作(但仅在登录到xfce之后)

–康斯坦丁Pelepelin
20 Jan 18'11:10



#5 楼

VBoxVGA会记住并恢复Windows guest虚拟机窗口的大小调整。
VBoxSVGA不记得大小调整了。

我希望我的Windows guest虚拟机以1240x712的显示大小打开。
如果我使用VBoxSVGA,来宾总是以1024x768打开,然后我需要调整它们的大小。

如果我使用VBoxVGA,则会保存/还原显示,主机将以1240x712打开,而无需进一步调整。

实际上,如果使用“调整窗口大小”设置来更改显示,则关闭Windows guest虚拟机并进行快照将保留新设置。 VBoxSVGA会忽略运行大小的更改。

评论


这听起来有点像一个过时的“来宾添加”包...

–user1686
20 Mar 13 '20 at 19:53

#6 楼

我在Fedora 31上遇到了类似的问题。
您可能必须转到“设置>设备>显示>分辨率”,然后手动选择分辨率。
正确安装了Guest Additions之后,主机的分辨率将在来宾支持的分辨率列表中。

在Ubuntu上,应为



打开“活动”概述并开始输入Displays。
单击“显示器”以打开面板。
如果有多个显示器并且它们没有镜像,则可以在每个显示器上具有不同的设置。在
预览区域中选择一个显示。
选择分辨率或比例,然后选择方向。
单击“应用”。新设置将应用20秒钟,然后
恢复原状。这样,如果使用新的
设置看不到任何内容,则旧的设置将自动恢复。如果您对新设置感到满意,请单击“保留更改”。