VMSVGA source, version, drivers, compatibility

This is for discussing general topics about how to use VirtualBox.
Post Reply
tauro
Posts: 6
Joined: 26. Jul 2011, 11:56
Primary OS: Debian Sid
VBox Version: OSE other
Guest OSses: Win98, WinXP, Win7, Win10

VMSVGA source, version, drivers, compatibility

Post by tauro »

Hi everybody,
I'm not usually on the forum but I've been using VirtualBox for years.

I'm curious, when did VirtualBox adopted the VMSVGA driver? Is it a direct copy of the VMware Workstation driver?

More importantly, what version of VMware Workstation / Player is it copied/taken from?

Is it completely compatible with that software's (specific version) drivers?

Thanks and have a great day!
scottgus1
Site Moderator
Posts: 20965
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: VMSVGA source, version, drivers, compatibility

Post by scottgus1 »

VMSVGA was brought to Virtualbox in 6.0.x, as part of a big graphics system redesign. VMSVGA is designed to be a compatible video card for OVF-format imported VMs.

VirtualBox's VMSVGA isn't a 'driver', it's a virtual video card. Virtualbox, VMware, Hyper-V, KVM, etc provide virtual 'hardware', and the installed OS in the VM provides the drivers for the 'hardware'. This is probably what you were thinking, too, but I just want to keep the terminology clear for further posts. (Virtualbox Guest Additions also provides extra drivers for the Virtualbox video card, but these aren't necessary to get an OS installed and displaying. The OS-native drivers can work VirtualBox's hardware, and Guest Additions provides better drivers if desired.)

I personally don't know what 'version' of VMSVGA was chosen for inclusion, nor if it is a direct copy of or compatible with VMware's VMSVGA . The intent was to be compatible with OVF.
tauro
Posts: 6
Joined: 26. Jul 2011, 11:56
Primary OS: Debian Sid
VBox Version: OSE other
Guest OSses: Win98, WinXP, Win7, Win10

Re: VMSVGA source, version, drivers, compatibility

Post by tauro »

Thanks for sharing your knowledge. I didn't know about the OVF standard.

I've read a bit about it and it seems Oracle wasn't one of the creators, but adopted it in 2009 (according to Wikipedia).

I'm not finding specific info about the emulated hardware though, it seems to be more like a packaging system for distributing VMs.

I couldn't find anything about why Oracle chose to adopt the VMware video virtual device or any indications that it is part of the OVF standard.
Last edited by tauro on 20. Apr 2022, 20:58, edited 1 time in total.
scottgus1
Site Moderator
Posts: 20965
Joined: 30. Dec 2009, 20:14
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Windows, Linux

Re: VMSVGA source, version, drivers, compatibility

Post by scottgus1 »

tauro wrote:it seems to be more like a packaging system for distributing VMs.
Yes, that's the idea.
tauro wrote:why Oracle chose to adopt the VMware video virtual device or any indications that it is part of the OVF standard.
Wikipedia says this: https://en.wikipedia.org/wiki/Open_Virt ... ion_Format
In September 2007 VMware, Dell, HP, IBM, Microsoft and XenSource submitted to the Distributed Management Task Force (DMTF) a proposal for OVF, then named "Open Virtual Machine Format".[1]
Looks like VMware was in on the ground floor, and so got a say in the formats of virtual hardware used.

From the 6.0.0 changelog: https://www.virtualbox.org/wiki/Changelog-6.0#v0
Graphics: major update of 3D graphics support for Windows guests, and VMSVGA 3D graphics device emulation on Linux and Solaris guests
From the 6.0.0 manual: https://download.virtualbox.org/virtual ... Manual.pdf
VMSVGA: Used to emulate a VMware SVGA graphic device.
Not much else described about it. I surmise that a VM from another hypervisor, like VMware, would have a VMSVGA video card. Since Virtualbox now has one, it would mean the VM could come into Virtualbox without requiring a hardware change to Virtualbox's native video card.

Since 6.0.0 was released December 18 2018, you could hunt up in VMware's help channels what version of hardware or drivers VMSVGA was at that time, and that will probably be what Virtualbox used. I don't know if there have been any updates. Running through the changelogs since 6.0.0 shows some changes made to VMSVGA in Virtualbox, which I don't know if were reflected back into the VMSVGA standard or were the devs' efforts to fix bugs in their implementation of the VMSVGA standard.
javispedro
Posts: 58
Joined: 29. Jan 2022, 15:31
Primary OS: openSUSE
VBox Version: OSE other
Guest OSses: Old & New Windows, Linux

Re: VMSVGA source, version, drivers, compatibility

Post by javispedro »

Well the VMSVGA implementation should be at least somewhat compatible with VMware's , since on a Linux guest you are able to use the Linux VMSVGA drivers unmodified.

Out of curiosity I tried to use VMware's VMsvga driver for Win9x on VirtualBox's VMsvga and it works... for a few seconds. I.e. it changes resolution, you can see the wallpaper rendered and perhaps a few GUI elements, but then it stops refreshing the screen. I am not sure whether the entire OS hangs or whether the driver just stops presenting new frames. It's not clear the vmware tools license allows this, so I won't experiment any further.

As far as I can see the VMware driver for 9x has no acceleration whatsoever, so maybe it would not be too hard to write a replacement.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: VMSVGA source, version, drivers, compatibility

Post by mpack »

The point of VMSVGA has been a puzzle to me for some time. At the time of it's introduction I'm sure I was given the impression that the idea was that it would benefit guests which have existing VMSVGA drivers and that these are quite common. This would be especially useful in guests which the devs didn't have the resources to support to the extent we would like. I was quite interested in (for example) having more advanced 3D acceleration in XP guests, i.e. better than OpenGL 2.1 (note that this was before 3D acceleration was dropped altogether in XP).

For some reason none of this panned out. Tests at the time showed that the feature used that way was unreliable, and AFAIK nothing has changed.

Strange, because another impression I got at the time was that this was some kind of technology exchange with VMWare, in which case you would expect full compatibility, at least at the beginning, before things begin to diverge.
javispedro
Posts: 58
Joined: 29. Jan 2022, 15:31
Primary OS: openSUSE
VBox Version: OSE other
Guest OSses: Old & New Windows, Linux

Re: VMSVGA source, version, drivers, compatibility

Post by javispedro »

mpack wrote:The point of VMSVGA has been a puzzle to me for some time. At the time of it's introduction I'm sure I was given the impression that the idea was that it would benefit guests which have existing VMSVGA drivers and that these are quite common. This would be especially useful in guests which the devs didn't have the resources to support to the extent we would like.
Well I think that's actually happening, no? I mean, Linux does have a vmsvga driver already and it works under VirtualBox without problems. That's 1/3 of the major guest OSes taken care of :)

The other thing is that the old 3D method (Chromium) was just like a swiss cheese full of security holes, and quite OpenGL/Linux centric, so I guess getting rid of it was quite a priority .
Faced with this situation, it makes sense to make up a "virtual GPU" which is more real hardware-like and with a smaller attack surface . Add if you are coming up with a "virtual GPU", why not just reuse one which is already available and kinda-documented ? The fact that you could use the linux driver as-is with the vmsvga may just be icing on the cake, but likely not the primary goal. Any virtual GPU would have done the trick.
VMsvga is a bit more DirectX9-ish-centric, at least in design (even though it seems VMware actually implements it with OpenGL too), so it may have been seen as more stable with Windows guests.
mpack wrote: I was quite interested in (for example) having more advanced 3D acceleration in XP guests, i.e. better than OpenGL 2.1 (note that this was before 3D acceleration was dropped altogether in XP).
I guess they can't just say "for 3D acceleration on XP, just use the vmware closed driver" due to ... reasons. Cough.
Maybe it is a worth a try......
The issue with the 9x driver seemed like a small incompatibility rather than major issue (even though it makes it unusable). I mean, I saw the GUI rendering 100% correctly for a couple frames without problem. Maybe it's just some legacy thing that VBox didn't implement since it wasn't required for modern guests (like refreshing the 2D buffer periodically, who knows).

I personally don't think it has anything to do with OVF. VMsvga is not documented in OVF and even though it may be implicit, VirtualBox uses by default a different PCI ID for it meaning binary driver compatibility is unlikely.
Post Reply