Ubisoft Is Playing With Linux & Xen Virtualization
Posted by Michael Larabel on July 12, 2011
Ubisoft, the massive video game publishing and development studio, has been busy playing with Linux. In particular, exploring opportunities presented by Xen virtualization with regards to VGA pass-through as a means of decent gaming performance in a virtualized environment. A discussion began in the Phoronix Forums yesterday about Ubisoft's Xen VGA pass-through demo.
Several weeks back, Ubisoft Quebec presented a video demo of VGA pass-through with Xen that was running the Unigine Heaven benchmark (oddly, not any of their own games) with two GeForce GTX 460 graphics cards that was running a Xen Dom0 with Ubuntu 10.10 and then the two Xen guests (one for each display and GPU) were running Microsoft XP. Unigine with the DirectX 9.0 renderer was running within these virtual guests with pass-through support to the NVIDIA graphics cards. Below is the official Ubisoft demo from their labs.
When publishing that two-minute video, they also made note they were currently hiring new developers for the Ubisoft Quebec City Studio Cloud Computing Team. Evidently Ubisoft has some interest and plans coming up for cloud gaming. The discussion surrounding this work is currently ongoing within this Phoronix Forums thread.
For a brief overview, Xen 4.0 was released last April (it's since been succeeded by Xen 4.1) and it introduced VGA pass-through support. Unlike VMware and VirtualBox virtualization solutions where they have 2D/3D accelerated support for their guest VMs, it's simply not a matter of routing the calls from the VM instance through the host's GPU driver and to the graphics card, with the associated overhead that brings. Instead, Xen VGA pass-through allows the guest to have full and direct control over the graphics processor.
In order to have the VGA pass-through support, the system requires Intel VT-d / IOMMU support. Additionally, Xen doesn't yet -- by default (other patches are available) -- support passing of secondary graphics processors to the virtual machines, but only the primary GPU. This could be interesting for then powering up a secondary, more-powerful graphics card (similar to AMD/NVIDIA "hybrid" graphics) that would then just be used by guests, if you were to use a Windows Xen VM for gaming. Another limitation is that it must be a fully-virtualized Xen HVM guest and not a Xen PV guest that's only para-virtualized.
VirtualBox just recently gained PCI pass-through support, but this doesn't support graphics cards due to their more complex nature. The latest Xen VGA pass-through support is able to work with Intel integrated graphics and most NVIDIA/ATI-AMD graphics cards. For those interested in more information on Xen VGA pass-through, see this Wiki page.
The Ubisoft demo is basically using this Xen feature with the two Windows Xen HVM guests having full control over each of the NVIDIA GPUs on the system to do gaming, while Linux is still running underneath.