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 ?
While I think that this is something that should get done eventually, there's no way that I'm going to install a second video card in my machine just to run a virtual machine at a faster 3D speed. I'd much prefer to be able to use the full capabilities of the host GPU than rely on a crutch like installing a second heat-producing GPU just to increase VM performance.
Originally Posted by schmidtbag
like I said, I don't think the virtual GPU should be removed, just not so heavily focused on. The reason I said that is specifically for reasons like what you mentioned. Keep in mind though that many processors that support passthrough already have an integrated GPU, so either that or the discrete card could be used for a VM. But for those who don't have passthrough support or don't have at least 2 GPUs, the virtual GPU is an acceptable alternative.
Originally Posted by Veerappan
i just did a quick test
system: phenom 955 and a rusty old geforce 7800gtx, nvidia 290.06 driver
1: debian sid amd64 host system with xfce and mutter compositor, ondemand cpu governor, 25% up_threshold
2: ubuntu 11.10 amd64 guest with unity, ondemand cpu governor, default up_threshold
3: ubuntu 11.10 amd64 guest with unity, ondemand cpu governor, 25% up_threshold
so, the ondemand cpu governor might be a reason for bad performance, too