VirtualBox

Ticket #8666 (new defect)

Opened 3 years ago

Last modified 2 years ago

OpenGL calls fail starting with VBox 4.x

Reported by: SoftCoder Owned by:
Priority: major Component: guest additions
Version: VirtualBox 4.0.4 Keywords: opengl
Cc: Guest type: Windows
Host type: Linux

Description

I am an opensource developer working on an RTS game called Megaglest (see megaglest.org). In previous versions of Virtual Box i was able to successfully test under virtual box using client extensions and 3d support. My host is Linux and guests are Windows XP and also many flavours of Linux including Ubuntu 8 - current. Starting in Virtualbox 4.x the game gets weird OpenGL errors returned, but the same binaries run fine on the native operating systems and ran fine in 3.x.

I refer to v3.4.0 and the current developer svn version. Source code is available at sourceforge.net here:  http://sourceforge.net/projects/megaglest/develop, our dev wiki is here:  http://glest.wikia.com/wiki/MG/Development

*NOTE: When disabling 3D guest additions the game does not work as it requires open GL 1.3 or higher reported by the OS.

For additional details join us on freenode.net IRC channel #glest

Thanks

Attachments

VBoxOpenGL.zip Download (137.4 KB) - added by denim 2 years ago.

Change History

Changed 2 years ago by denim

comment:1 Changed 2 years ago by denim

Hi, I came over a very similar problem. My host system is an Ubuntu 11.10 (32 bit) and the guest system is a Windows 7 (32 bit). In order to reproduce the problem, I wrote a minimum C++ OpenGL application, that uses glut to create a window, and and a display list, that renders a colored quad. Running this test application on the guest system Windows 7 from my host system Ubuntu 11.10 using Virtualbox 3.2.14 r75509 works well (I see the colored quad and get no OpenGL error). Running the same scenario using Virtualbox 4.1.8 r75467 also gives me the colored quad but additionally gives me the OpenGL error "invalid enumerant" after the call to glEndList(). See the attached files for further details (main.cpp contains the sample application).

comment:2 Changed 2 years ago by SoftCoder

Ok the problem is related to using display lists. I replaced code that did this:

list3d= glGenLists(1); glNewList(list3d, GL_COMPILE_AND_EXECUTE); render3dSetup(); glEndList(); assertGl();

After removing the use of lists, our program works fine in virtualbox. It should be noted that doing a selection quad in virtualbox DOES NOT work using the normal selection buffer. But when i set our game to use an alternative method (color picking) everything works in virtualbox. Clearly the virtualbox opengl drivers are buggy on windows and they appear to return the 'invalid enum or variant' error when using display lists, and selection buffer does not work at all.

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use