VirtualBox 4.0 OpenGL Acceleration Leaves Room For Improvement

Written by Michael Larabel in Software on 3 March 2011 at 09:28 AM EST. Page 1 of 2. 10 Comments.

VirtualBox, the Sun/Oracle virtualization platform, has supported OpenGL acceleration and Direct3D acceleration within virtual machines for more than two years. When the host system has hardware GPU acceleration, OpenGL/Direct3D calls can be passed from the guest to the host when the VirtualBox guest driver is installed. There has been the Linux 3D support since VirtualBox 2.2 and was initially limited to OpenGL 1.4 support and in the summer of 2009 it turned to OpenGL 2.0. We had not delivered any early benchmarks as the initial support was too buggy, but even with the recently released VirtualBox 4.0, while the support is usable and stable for the most part, it is still far from being very efficient and will crash under some OpenGL software.

While Oracle's VirtualBox 3D acceleration may not perfect, at least it is there. KVM/QEMU still lacks OpenGL acceleration support for guests. Within the Xen camp, there is/was a virtual, open-source Gallium3D driver for guests, but it did not receive too much attention outside of HP's laboratories where it was developed. VMware's virtualization solutions support a Gallium3D driver too. VMware bought out Tungsten Graphics, which was the company behind Mesa and Gallium3D and with that, they have all of the most experienced open-source Linux graphics driver developers. VMware's graphics acceleration is very good. Unfortunately, VMware's user agreement bars us from carrying out any benchmarks officially (though that's not to say the community can't benchmark VMware's products on their own and upload them to OpenBenchmarking.org), so we are left with sharing results for just Oracle VM VirtualBox.

Support for 3D acceleration in guests needs to be enabled from the VirtualBox management software and then the "VirtualBox Guest Additions" installed onto the guest operating system. Under Linux, this installs the "Chromium" (not to be confused with the Google open-source web-browser) graphics driver for passing the OpenGL calls to the host operating system. The VirtualBox developers have previously rejected using the Gallium3D architecture. Using Gallium3D would also make it feasible to also open up other forms of acceleration to guests such as for OpenCL, OpenVG, OpenGL ES, and Xorg EXA/XvMC. VirtualBox does provide 2D acceleration support when using their driver. The VirtualBox Direct3D driver is also limited to Direct3D 8/9 while there is a Gallium3D Direct3D 10/11 state tracker in existence.


Related Articles