Recent Changes - Search:

VirtualGL Home

About VirtualGL

Downloads

Documentation

Developer Info

Library

Contact

Related Projects

Enabling VirtualBox 3D Acceleration on Win64 Guests

NOTE: This page is only applicable to VirtualBox 3.1.6 - 3.2.0. 3D acceleration support for 64-bit Windows guest applications has been included in VirtualBox 3.2.2.

This article explains how to build and install the VirtualBox 3D Acceleration DLL's for Win64, which will allow you to run OpenGL applications in Windows 64-bit guests using 3D hardware acceleration. When combined with the 64-bit versions of VirtualBox and VirtualGL for Linux, this provides a full solution for remotely displaying Windows 64-bit OpenGL applications to thin clients.

Build Environment

This will install a build environment sufficient to build the VirtualBox 3D Acceleration DLL's but not sufficient to build a fully operational version of VirtualBox.

  • Install VirtualBox 3.1.6 on your host machine
  • Create a new virtual machine and install Windows XP 64-bit as a guest operating system (this may work with later versions of Windows as well but has not been tested)
    • Enable 3D Acceleration in the new VM's preferences
    • The remaining steps should be performed within the new VM
  • Install v3.1.6 of the VirtualBox Guest Additions
  • Install the Windows Vista Update & .NET 3.0 SDK from http://msdn.microsoft.com/en-us/windows/dd146047.aspx
    • Add C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\bin\x64 and C:\Program Files\Microsoft SDKs\Windows\v6.0\bin\x64 to the system PATH environment variable
    • Add C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\lib\x64 and C:\Program Files\Microsoft SDKs\Windows\v6.0\lib\x64 to the system LIB environment variable
    • Add C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\include and C:\Program Files\Microsoft SDKs\Windows\v6.0\include to the system INCLUDE environment variable
    • Using the Microsoft Junction utility, create the following junctions:
      • cd /d C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\Bin
      • junction amd64 x64
      • cd /d C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\lib
      • junction amd64 x64
      • cd /d C:\Program Files\Microsoft SDKs\Windows\v6.0\lib
      • junction amd64 x64
    • Using the Win32 Patch utility, apply this patch to C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\INCLUDE\intrin.h
  • Install the Windows DDK for Windows Server 2003 (ISO is available here)
    • Using the Win32 Patch utility, apply this patch to C:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h
  • Download and install the DirectX SDK
  • Download YASM for Win64, rename the binary as yasm.exe, and place it somewhere in the PATH
  • Download and install Python 2.5 for Win64
  • Create a new directory c:\src
  • Download the source for VirtualBox 3.1.6 and extract it into c:\src
    • Using the Win32 Patch utility, apply this patch to c:\src\VirtualBox-3.1.6_OSE
    • Unzip this file into C:\src\VirtualBox-3.1.6_OSE\src\VBox\Additions\common\crOpenGL

Building

  • cd /d C:\src\VirtualBox-3.1.6_OSE
  • cscript configure.vbs --with-vc="c:\Program Files\Microsoft SDKs\Windows\v6.0\VC" --with-VC-Express-Edition --with-python=c:\Python25
  • env.bat
  • cd C:\src\VirtualBox-3.1.6_OSE\src\VBox\Runtime
  • kmk RuntimeGuestR3
  • kmk RuntimeGuestR3Shared
  • cd C:\src\VirtualBox-3.1.6_OSE\src\VBox\Additions\common\VBoxGuestLib
  • kmk
  • cd C:\src\VirtualBox-3.1.6_OSE\src\VBox\GuestHost\OpenGL
  • kmk (this will fail while building VBoxOGLhostcrutil.dll, but that's OK, because we don't need that library)
  • cd C:\src\VirtualBox-3.1.6_OSE\src\VBox\Additions\common\crOpenGL
  • kmk

Installing

  • Load regedit and import this registry script
  • copy C:\src\VirtualBox-3.1.6_OSE\out\win.amd64\release\bin\additions\VBoxOGL*.dll c:\windows\system32
  • Pre-built versions of these DLL's can be found here.

Conclusions

Apart from the changes to the interface definition file for VBoxOGL.dll, necessitated by the differences in the Win64 calling convention, no other modifications to the VirtualBox source were necessary to make this work. Thus, it is likely that the main reason why 3D Acceleration for 64-bit Windows guests doesn't exist is that SunOracle hasn't bothered to figure out how to build it yet. Given the obfuscated nature of the VirtualBox build environment, this is not surprising, as it took us about 25 hours to figure out the above procedure ourselves. This also indicates that, if SunOracle ever does decide to release a 64-bit VBox executable for Windows, then this problem will solve itself.

Creative Commons LicenseAll content on this web site is licensed under the Creative Commons Attribution 2.5 License. Any works containing material derived from this web site must cite The VirtualGL Project as the source of the material and list the current URL for the VirtualGL web site.

Edit - History - Print - Recent Changes - Search
Page last modified on June 04, 2010, at 02:14 AM