4.5. Hardware-accelerated graphics

Oracle VM VirtualBox

4.5. Hardware-accelerated graphics

4.5.1. Hardware 3D acceleration (OpenGL and Direct3D 8/9)

The VirtualBox Guest Additions contain experimental hardware 3D support for Windows, Linux and Solaris guests.[20]

With this feature, if an application inside your virtual machine uses 3D features through the OpenGL or Direct3D 8/9 programming interfaces, instead of emulating them in software (which would be slow), VirtualBox will attempt to use your host's 3D hardware. This works for all supported host platforms (Windows, Mac, Linux, Solaris), provided that your host operating system can make use of your accelerated 3D hardware in the first place.

The 3D acceleration currently has the following preconditions:

  1. It is only available for certain Windows, Linux and Solaris guests. In particular:

    • 3D acceleration with Windows guests requires Windows 2000, Windows XP, Vista or Windows 7. Both OpenGL and Direct3D 8/9 (not with Windows 2000) are supported (experimental).

    • OpenGL on Linux requires kernel 2.6.27 and higher as well as X.org server version 1.5 and higher. Ubuntu 10.10 and Fedora 14 have been tested and confirmed as working.

    • OpenGL on Solaris guests requires X.org server version 1.5 and higher.

  2. The Guest Additions must be installed.

    Note

    For the basic Direct3D acceleration to work in a Windows Guest, VirtualBox needs to replace Windows system files in the virtual machine. As a result, the Guest Additions installation program offers Direct3D acceleration as an option that must be explicitly enabled. Also, you must install the Guest Additions in "Safe Mode". This does not apply to the WDDM Direct3D video driver available for Vista and higher, see Chapter 14, Known limitations for details.

  3. Because 3D support is still experimental at this time, it is disabled by default and must be manually enabled in the VM settings (see Section 3.4, “General settings”).

    Note

    Untrusted guest systems should not be allowed to use VirtualBox's 3D acceleration features, just as untrusted host software should not be allowed to use 3D acceleration. Drivers for 3D hardware are generally too complex to be made properly secure and any software which is allowed to access them may be able to compromise the operating system running them. In addition, enabling 3D acceleration gives the guest direct access to a large body of additional program code in the VirtualBox host process which it might conceivably be able to use to crash the virtual machine.

To enable Aero theme support, the VirtualBox WDDM video driver must be installed, which is available with the Guest Additions installation. The WDDM driver is not installed by default for Vista and Windows 7 guest and must be manually selected in the Guest Additions installer by answering "No" in the "Would you like to install basic Direct3D support" dialog displayed when the Direct3D feature is selected.

The Aero theme is not enabled by default. To enable it

  • In Windows Vista guest: right-click on the desktop, in the context menu select "Personalize", then select "Windows Color and Appearance" in the "Personalization" window, in the "Appearance Settings" dialog select "Windows Aero" and press "OK"

  • In Windows 7 guest: right-click on the desktop, in the context menu select "Personalize" and select any Aero theme in the "Personalization" window

Technically, VirtualBox implements this by installing an additional hardware 3D driver inside your guest when the Guest Additions are installed. This driver acts as a hardware 3D driver and reports to the guest operating system that the (virtual) hardware is capable of 3D hardware acceleration. When an application in the guest then requests hardware acceleration through the OpenGL or Direct3D programming interfaces, these are sent to the host through a special communication tunnel implemented by VirtualBox, and then the host performs the requested 3D operation via the host's programming interfaces.

4.5.2. Hardware 2D video acceleration for Windows guests

Starting with version 3.1, the VirtualBox Guest Additions contain experimental hardware 2D video acceleration support for Windows guests.

With this feature, if an application (e.g. a video player) inside your Windows VM uses 2D video overlays to play a movie clip, then VirtualBox will attempt to use your host's video acceleration hardware instead of performing overlay stretching and color conversion in software (which would be slow). This currently works for Windows, Linux and Mac host platforms, provided that your host operating system can make use of 2D video acceleration in the first place.

The 2D video acceleration currently has the following preconditions:

  1. It is only available for Windows guests (XP or later).

  2. The Guest Additions must be installed.

  3. Because 2D support is still experimental at this time, it is disabled by default and must be manually enabled in the VM settings (see Section 3.4, “General settings”).

Technically, VirtualBox implements this by exposing video overlay DirectDraw capabilities in the Guest Additions video driver. The driver sends all overlay commands to the host through a special communication tunnel implemented by VirtualBox. On the host side, OpenGL is then used to implement color space transformation and scaling


[20] OpenGL support for Windows guests was added with VirtualBox 2.1; support for Linux and Solaris followed with VirtualBox 2.2. With VirtualBox 3.0, Direct3D 8/9 support was added for Windows guests. OpenGL 2.0 is now supported as well. With VirtualBox 4.1 Windows Aero theme support is added for Windows Vista and Windows 7 guests (experimental)