vmwgfx benchmarks / testing?
There is one Gallium3d hardware-accelerated driver that has not really been talked about much on Phoronix: vmwgfx. Sometimes known as "SVGA II" in VMware marketing literature, or "svga" in the codebase, this "GPU" driver is rather interesting.
The VMware hypervisor provided with a commercial VMware desktop product (such as Workstation 7.1) exposes an interface that looks very much like a hardware GPU to the guest. Within this framework (if you pretend to be blind to the fact that this is only usable when you're running the closed source VMware hypervisor) the graphics support on Linux is completely open source.
The previous generation "vmlegacy" driver (shipped in production releases of VMware Tools and also with some distros) provides usable 2d performance, but no 3d or compositing of any sort. vmwgfx addresses this limitation.
Right now, vmwgfx is more or less up to par with other Gallium3d hardware drivers I've seen in action (nv50 and r300g). The 3d support is very good, and the 2d acceleration is coming along well. If distros start to support vmwgfx with the 2.6.35 kernel and the mesa stack refresh, we might see vmwgfx in some major distros as the year winds down.
I think it's time to start including vmwgfx in tests on Phoronix -- ideally, on Michael's front page tests.
Michael -- I realize that Workstation licenses are expensive. Try and contact VMware and see if you can't get a deal with them. The main problem for you is that VMware Workstation is licensed by the CPU, so if you try to activate it multiple times on the same processor, it's fine; but if you try to activate it on a different processor, it refuses. It's better than Microsoft's ambiguous hardware hash, but you're still tied to a particular piece of hardware (the CPU). Fortunately you can reinstall it as many times as you like on that CPU, even across different operating systems entirely (Windows and Linux).
Some of the tests I would like to see:
*Linux host, Linux guest: vmwgfx versus the hardware's native gallium3d driver on the host
*Linux host, Linux guest: vmwgfx versus the hardware's Linux proprietary driver (if it's ATI or Nvidia)
*Windows host, Linux guest: native Windows using proprietary driver versus vmwgfx on Linux
*The "Take That Catalyst!" Test: vmwgfx on Windows host vs. native Catalyst on Linux
The last test is particularly interesting to me. I've personally tried this setup with a Radeon HD5970. My subjective opinion so far is that my Windows host (running Catalyst for Windows 10.7) can run virtualized vmwgfx faster than Catalyst for Linux can do the same thing natively! This seems especially apparent for 2d, but even moreso for the "responsiveness" of the 3d. You know fglrx sucks when a virtual machine can out-perform it
Meanwhile, as Michael tries things out and decides if he wants to bring vmwgfx into his frequent testing rounds, I will try and release some of my own tests running PTS. I can't promise the pretty graphs and witty articles like Michael does, but you'll have the data at least.
I'm very impressed with vmwgfx so far; it seems that, as long as vmwgfx is running on a host OS with a well-performing 3d stack (such as Windows 7 running Catalyst), the guest support is as good as can be expected of Gallium3d today. Which is to say, strong, near-native performance and fairly good support for OpenGL 2.1.
My guess is that in that scenario Windows Catalyst gets to use DirectX (which is fast) and not ATi's own OpenGL impelementation (which is not as fast) on Windows and then benefit of the opensource (Mesa Gallium3D) OpenGL implementation on Linux. It is unsurprising to me at least that this would be fast. Just think about it. Windows has long-release cycles and the kernel components are very mature and optimized there.
Originally Posted by allquixotic
Ubuntu 11.04 does not support vmwgfx, even though it shipped with the "latest and greatest" kernel :-/ What kind of lame decision was that? Seriously...
FATAL: Module vmwgfx not found.
Is there a PPA somewhere that allows Ubuntu 11.4 to use this inside VMWare? I think not only the kernel module is needed, but the Gallium driver as well. Any hints?
If you install the Vmware tools using Workstation, it does include the vmwgfx modules in the source files.
Originally Posted by RealNC
However, like you said, the Kernel isn't configured to enable the kernel module. Interestingly, the Vmware guys tried to tell Ubuntu to enable it by default, but there was a bug preventing it early on. The bug is sinced fixed. Ubuntu is waiting on vmware to tell them WHY it is a good idea.
Anyways... Right now I'm compiling a 2.6.39 Ubuntu kernel with the module enabled. Such a slow and lengthy process.... Setting up a kernel manually in Gentoo is much easier.
I had to download 800 megs of build dependencies to start. Hopefully after all the architectures are finished building it'll work.
I'm not sure if Ubuntu's mesa, libdrm and xorg have gallium enabled either. I'm assuming by now it is.
If it works i'll be happy to share the deb package with you.
If anybody is still interested.
I was able to compile a custom ubuntu kernel with the vmwgfx module.
Unfortunately, you also have to compile Mesa and libdrm with the svga gallium options to get vmwgfx_drv.so to build. I had to use a lot of trial and error to figure out how to get it to build, since the documentation is out of date doing google searches.
After that, and creating a basic xorg.conf, I do have Vmware's gallium code running.
It's mostly stable. I have gotten it to crash by switching VTs, sometimes.
It doesn't work with Unity, because UNity it looks garbled. The rest of the applications look fine.
However, gnome-shell 3 is working nicely. There is some minor corruption (not redrawing some areas), but otherwise it's usable.
I'm liking gnome-shell overall. It goes well with my workflow since I'm used to docky + gnome-do.
Hopefully Vmware stabilizes it soon so Ubuntu starts compiling the gallium code in by default.