3D Acceleration in VirtualBox Guests
Last spring, the world changed forever when VirtualBox implemented support for 3D acceleration in Windows and Linux guests. I have a tendency to be behind the curve on world-changing events, so I didn’t found time to play with this new feature until a few days ago. But what I found made me really happy. Read on for the details.
One of the most common complaints about Ubuntu is, “It doesn’t run application X, which I need for school/work/gambling.”
Sometimes, wine is the solution to these problems. I’d be reluctant, however, to rely on wine if I needed a Windows program to run flawlessly. Wine can do wonderful things, but it can also do weird, flaky and unpredictable things in many cases, which is not acceptable in a production environment.
In most other situations, running Windows in a virtualized environment via any of a number of Linux virtualization platforms–VMware, VirtualBox, KVM, Xen, etc.–is the next-best way to get that tricky Windows-only application working on Ubuntu.
Until recently, however, the big caveat for virtualization in Linux was that applications requiring video hardware acceleration–which means most games made in the last decade, among other things–were not supported. In certain cases, some clever hackery could work around this limitation, and certain of VMware’s products boasted ostensible support for hardware acceleration in guests. But for most Linux users, and probably all non-geeks, running 3D applications in a Windows guest on Ubuntu remained out of the question.
That all changed last spring, however, when VirtualBox, my favorite virtualization application, implemented support for hardware acceleration in Windows and Linux guests, by providing direct access to the host’s video device. With that announcement, the holy grail of virtualization–at least from the ex-Windows gamer’s perspective–was realized.
Testing 3D acceleration
I was impressed with how easy it was to enable video acceleration in my Windows XP and Ubuntu virtual machines. Just click a checkbox under the “Display” section of the virtual machine’s configuration and you’re good to go (guest additions and, for Windows guests, WineD3D should also be installed).
After that, 3D applications will “just work.” As proof, here’s a screenshot of Tux Racer running in a Windows guest:
Granted, video acceleration in my Windows and Ubuntu guests wasn’t flawless. Graphics weren’t as smooth as they are on the host, and mouse movement was very erratic in several of the 3D applications I ran in Windows.
On the other hand, the fact that my Intel video hardware is relatively weak probably bears at least part of the responsibility for the choppy graphics, and the flaky mouse behavior could be due to any number of factors that may or may not have to do with 3D acceleration or the specifics of my hardware configuration.
In any case, 3D applications were certainly usable, even if they didn’t perform flawlessly, in my virtual machines. This is a huge improvement over the past, when using Ubuntu meant saying goodbye to a range of Windows-only applications that require hardware acceleration.
Ideally, the day will come when I can run every application I want natively on Ubuntu. But until then, user-friendly and feature-rich virtualization platforms like VirtualBox will remain a vitally important component of the Linux world.