VirtualBox 4.1 OpenGL 3D Guest Performance
Phoronix: VirtualBox 4.1 OpenGL 3D Guest Performance
While KVM may be very fast for Linux virtualization, one of the areas where VMware and VirtualBox are superior is when it comes to the ability to provide hardware-accelerated 2D/3D support to guest virtual machines that ultimately is passed onto the host and its graphics card / driver. In this benchmark is a look at the gaming performance of Oracle's VM VirtualBox 4.1 when using their "Chromium" driver to enable guest Linux OpenGL acceleration.
Looks like some kind of vsync deal is going on.
Not sure, because not all the framerates are equal. This is linux host, linux guest right? Maybe some combinations do better than others?
Originally Posted by Derpinator
These charts imply that the bottleneck is in the communication tunnel between the guest and the host. The communication overhead is large enough that it trumps any impact increased resolution may have.
For instance, LiveArena ranges between 2.2 ms/frame and 11.5 ms/frame on bare metal, and between 46.7 ms/frame and 48.5 ms/frame through the tunnel. This implies some 40+-5 ms of overhead when run through the tunnel - or some other bug in VirtualBox (4.1.2 a few months out of date, the latest version is 4.1.6).
Edit: Ah Linux guest? That's quite a bit slower than a Windows guest, because Linux guests don't get 2d acceleration and don't play well with OpenGL compositors (there are two different OpenGL compositors running, one in the guest and one on the host, which does lead to sync issues). This is what happens with two compositors: 3d in guest -> send 3d commands to host -> 3d compositor in guest -> send 3d commands to host -> 3d compositor in host -> display on screen. Disable the guest compositor and you get other problems: 3d in guest -> send 3d commands to host -> read result from host (non-accelerated!) -> display in guest -> 3d compositor in host -> display on screen.
It's going to be slow no matter what you do. For best results, you'd need to disable the host and guest compositors and implement 2d acceleration in the guest.
Last edited by BlackStar; 11-08-2011 at 08:10 AM.
I once tried some of the Introversion games in a Windows 7 VBox and they actual run with the Direct3D driver, but not at a playable speed. What works is watching fullscreen flash videos on the guest...
I feel that the virtual GPU needs to be overall ignored and GPU passthrough should be focused on. However, I don't think the virtual GPU should be removed. As I see it, the only easy way for GPU passthrough to work is to have a separate monitor and a GPU that is not in use by the host OS. I think if Oracle can accomplish that then that's a huge achievement. As for needing a separate monitor, an easy hack to avoid that would be to use a VNC.
Maybe I'm saying something stupid but :
As the framerate seems not to change when the resolution grows, isn't it that the bottleneck would be the processor, instead of the graphics card ?
Wouldn't it be a more intriguing test to try PCI Express x16 VGA Passthrough? If using Intel sandy bridge architecture, to try vt-d compatible hardware w/ vt-d turned on in the bios and then test the open source games in virtualbox?
Originally Posted by BlackStar
That is, if vt-d works in Vbox yet. But, I thought maybe the only way right now to get any sort of performance improvement.
I'm just asking...
Seems to me a lot has to happen for Vbox to take 'generic video card' and produce much in terms of performance when playing games......
I have already tried vga passthrough using an unused, discrete video card on an AMD IOMMU system. the gpu is recognized and can be installed but it can't be activated. i have tried everything i can think of and it still doesn't work. vga/gpu passthrough is not at all similar to regular pci, so there's more changes to be done.
Originally Posted by Panix