This ticket is used to track development of 3d acceleration support.
I have committed my initial OpenGL guest support to the public SVN tree:
Current status:
- communication framework between guest and host is present
- simple OpenGL samples are functional; they display their rendered output in an external window on the host for testing purposes)
- supported are only Windows guests combined with a Windows host
- not all OpenGL commands are implemented; most simple ones are
Plans:
- Linux host and guest OpenGL support
- Add OpenGL extensions as reported by the host OS
- Direct3D emulation using OpenGL
We are looking for external developers with an interest to help us out to complete this work.
Installation instructions:
To enable it you must add the following registry keys:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\OpenGLDrivers\VBoxOGL]
"Version"=dword:00000002
"DriverVersion"=dword:00000001
"Flags"=dword:00000001
"Dll"="VBoxOGL.dll"
You need to build the latest additions from SVN as the OpenGL ICD mechanism needs a change in the display driver.
VBoxOGL.dll needs to be present in \Windows\System32.
TEMPORARY requirement: to enable OpenGL you must change src\VBox\Main\VMMDevInterface.cpp at line 606.
You can also directly link the OpenGL test cases with VBoxOGL.lib to test them directly.
- replace $(PATH_SDK_W2K3DDKX86_LIB)/opengl32.lib with $(PATH_LIB)/VBoxOGL.lib in the makefile of the test cases
- add VBOX_WITH_WGL_EXPORTS to VBoxOGL_DEFS in the VBoxOGL makefile
Enabling logging can be of invaluable help while debugging problems.
- export the VBOX_LOG variable and set it to -all+shared_opengl+dev_vmm_backdoor
- build the debug version of VBox
The full debug version of VBox adds quite a bit of overhead and might assert from time to time. For OpenGL debugging you only need to use the debug binaries of the hardware Devices (VBoxDD*.*). You can simply copy them into the directory with the full release version. (both must be at the same SVN level of course)