OpenGL development issues on virtualbox
Posted: 25. Jun 2010, 10:56
Hello,
I'm developing an OpenGL application for Ubuntu. I'm using the SDL and GLEW utility libraries. Ubuntu 10.04 is running in VirtualBox 3.2.4 on a Windows host.
When I start the application, I get a lot of GL_INVALID_ENUM errors on OpenGL calls. Analysis with valgrind shows lots (>10000000) of (jumps depending on) uninitialized values (among others), which seem to originate without exception (haven't checked them all) from virtualbox drivers. It begins with an error while loading the VBoxOGL.so library where things start going wrong:
==2311== Syscall param ioctl(generic) points to uninitialised byte(s)
==2311== at 0x425A619: ioctl (syscall-template.S:82)
==2311== by 0x50EFB7B: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50EFC9D: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50E612F: crNetConnect (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50E562A: crNetConnectToServer (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50E6106: crNetServerConnect (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x508AE02: stubInit (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x50A76F5: vbox_install_into_mesa (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x50C0AB4: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x50894B8: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x400DC4B: call_init (dl-init.c:70)
==2311== by 0x400DD68: _dl_init (dl-init.c:134)
==2311== Address 0xbed424a8 is on thread 1's stack
After that, many many uninitialized values are encountered after the glewInit call. One example:
==2311== Conditional jump or move depends on uninitialised value(s)
==2311== at 0x50EB581: crStrlen (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50EBD25: crStrSplit (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50EBEFD: crStrIntersect (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x515A239: crStateMergeExtensions (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLpackspu.so)
==2311== by 0x51275D0: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLpackspu.so)
==2311== by 0x50AB232: cr_glGetString (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x46B2EAF: glewGetExtension (in /usr/lib/libGLEW.so.1.5.2)
==2311== by 0x46BDF7B: glewInit (in /usr/lib/libGLEW.so.1.5.2)
==2311== by 0x403D50C: gx_screen::initGl() (gx_screen.cpp:81)
==2311== by 0x403D363: gx_screen::gx_screen(gx_screenMode, unsigned int, unsigned int) (gx_screen.cpp:65)
==2311== by 0x403E1E7: gx_engine::gx_engine(unsigned int, gx_screenMode) (gx_engine.cpp:13)
==2311== by 0x8048B3B: main (t_node.cpp:38)
Is there something wrong with my guest additions installation? The compiz environment works just fine, so OpenGL seems to be working. I'm somewhat lost here. Anyone has an idea? I've included a complete listing of the output of valgrind.
Thanks
I'm developing an OpenGL application for Ubuntu. I'm using the SDL and GLEW utility libraries. Ubuntu 10.04 is running in VirtualBox 3.2.4 on a Windows host.
When I start the application, I get a lot of GL_INVALID_ENUM errors on OpenGL calls. Analysis with valgrind shows lots (>10000000) of (jumps depending on) uninitialized values (among others), which seem to originate without exception (haven't checked them all) from virtualbox drivers. It begins with an error while loading the VBoxOGL.so library where things start going wrong:
==2311== Syscall param ioctl(generic) points to uninitialised byte(s)
==2311== at 0x425A619: ioctl (syscall-template.S:82)
==2311== by 0x50EFB7B: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50EFC9D: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50E612F: crNetConnect (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50E562A: crNetConnectToServer (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50E6106: crNetServerConnect (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x508AE02: stubInit (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x50A76F5: vbox_install_into_mesa (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x50C0AB4: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x50894B8: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x400DC4B: call_init (dl-init.c:70)
==2311== by 0x400DD68: _dl_init (dl-init.c:134)
==2311== Address 0xbed424a8 is on thread 1's stack
After that, many many uninitialized values are encountered after the glewInit call. One example:
==2311== Conditional jump or move depends on uninitialised value(s)
==2311== at 0x50EB581: crStrlen (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50EBD25: crStrSplit (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x50EBEFD: crStrIntersect (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLcrutil.so)
==2311== by 0x515A239: crStateMergeExtensions (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLpackspu.so)
==2311== by 0x51275D0: ??? (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGLpackspu.so)
==2311== by 0x50AB232: cr_glGetString (in /opt/VBoxGuestAdditions-3.2.4/lib/VBoxOGL.so)
==2311== by 0x46B2EAF: glewGetExtension (in /usr/lib/libGLEW.so.1.5.2)
==2311== by 0x46BDF7B: glewInit (in /usr/lib/libGLEW.so.1.5.2)
==2311== by 0x403D50C: gx_screen::initGl() (gx_screen.cpp:81)
==2311== by 0x403D363: gx_screen::gx_screen(gx_screenMode, unsigned int, unsigned int) (gx_screen.cpp:65)
==2311== by 0x403E1E7: gx_engine::gx_engine(unsigned int, gx_screenMode) (gx_engine.cpp:13)
==2311== by 0x8048B3B: main (t_node.cpp:38)
Is there something wrong with my guest additions installation? The compiz environment works just fine, so OpenGL seems to be working. I'm somewhat lost here. Anyone has an idea? I've included a complete listing of the output of valgrind.
Thanks