* Using VirtualGL with VirtualBox

[[http://VirtualBox.org][VirtualBox]] is an enterprise-class, open source
virtualization solution that supports hardware-accelerated OpenGL in Windows
and Linux guests running on Windows, Mac, Linux, and Solaris/x86 hosts.  3D
acceleration in VirtualBox is accomplished by installing a special driver in
the guest that uses a subset of [[http://chromium.sourceforge.net/][Chromium]]
to transmit OpenGL calls through a local connection to the VirtualBox process
running on the host.  When used in conjunction with VirtualGL on a Linux or
Solaris/x86 host, this solution provides a means of displaying Windows 3D
applications remotely.

To use VirtualGL with VirtualBox, perform the following procedures:

*** Configuring the System
#OPT: noList! plain!

	#. Launch VirtualBox and use the VirtualBox GUI to create and test your
		virtual machine.

	#. Follow the procedures outlined in the VirtualBox User's Manual to enable
		3D acceleration in the virtual machine.  If possible, verify that 3D
		acceleration works on a local display __without__ VirtualGL before adding
		VirtualGL to the mix.

	#. Follow the procedure described in {ref prefix="Chapter ": setuid_linux} to
		make {file: libvglfaker.so} and {file: libdlfaker.so} setuid executables
		(Linux) or to add the VirtualGL library directory to the list of secure
		paths (Solaris).

*** Launching VirtualBox
#OPT: noList! plain!

#Pverb: <<---
vglrun VirtualBox -startvm __VM-name-or-UUID__
---

*** NOTES
#OPT: noList! plain!

	* You might want to temporarily enable profiling (add an argument of ''+pr''
		to ''vglrun'' above) or set the ''VGL_LOGO'' environment variable to ''1''
		in order to verify that VirtualGL is loaded and working.

	* It is necessary to start the virtual machine directly as described above.
		Simply executing ''vglrun VirtualBox'' and using the GUI to launch the VM
		does not work.  VirtualBox forks a separate process for each VM, and the
		value of the ''LD_PRELOAD'' environment variable from ''vglrun'' does not
		get propagated to the VM process unless you start it directly.

	* VirtualBox sends mainly uncompressed images to the X server, so even with
		VirtualGL, it will not perform well over a remote X connection.  Using a
		high-performance X proxy (such as TurboVNC) is generally preferred when
		remotely displaying VirtualBox using VirtualGL, particularly on 100-megabit
		and slower networks.
