lunixbochs / glshim

OpenGL 1.x driver shim for OpenGL ES devices.
https://boards.openpandora.org/topic/11506-glshim/
MIT License
160 stars 32 forks source link

Freeorion 0.4.5 segfault #134

Open MagaTailor opened 9 years ago

MagaTailor commented 9 years ago

The latest unstable segfaults with the following:

(gdb) run --resource-dir /usr/share/games/freeorion/default
Starting program: /usr/lib/freeorion/freeorion --resource-dir /usr/share/games/freeorion/default
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
glXGetProcAddress: glXQueryDrawable not found.
libGL:loaded: libGLESv1_CM.so
libGL:loaded: libEGL.so
libGL: built on Sep 12 2015 13:47:10
[New Thread 0xb5ce7450 (LWP 15711)]
[New Thread 0xb54e7450 (LWP 15712)]
glXGetProcAddress: glXQueryDrawable not found.
glXGetProcAddress: glCopyTexSubImage3D not found.
glXGetProcAddress: glDrawRangeElements not found.
glXGetProcAddress: glTexSubImage3D not found.
glXGetProcAddress: glCompressedTexImage1D not found.
glXGetProcAddress: glCompressedTexImage3D not found.
glXGetProcAddress: glCompressedTexSubImage1D not found.
glXGetProcAddress: glCompressedTexSubImage3D not found.
glXGetProcAddress: glGetCompressedTexImage not found.
glXGetProcAddress: glLoadTransposeMatrixd not found.
glXGetProcAddress: glLoadTransposeMatrixf not found.
glXGetProcAddress: glMultTransposeMatrixd not found.
glXGetProcAddress: glMultTransposeMatrixf not found.
glXGetProcAddress: glBlendColor not found.
glXGetProcAddress: glBlendEquation not found.
glXGetProcAddress: glFogCoordPointer not found.
glXGetProcAddress: glMultiDrawArrays not found.
glXGetProcAddress: glMultiDrawElements not found.
glXGetProcAddress: glPointParameteri not found.
glXGetProcAddress: glPointParameteriv not found.
glXGetProcAddress: glSecondaryColorPointer not found.
glXGetProcAddress: glWindowPos2d not found.
glXGetProcAddress: glWindowPos2dv not found.
glXGetProcAddress: glWindowPos2f not found.
glXGetProcAddress: glWindowPos2fv not found.
glXGetProcAddress: glWindowPos2i not found.
glXGetProcAddress: glWindowPos2iv not found.
glXGetProcAddress: glWindowPos2s not found.
glXGetProcAddress: glWindowPos2sv not found.
glXGetProcAddress: glWindowPos3d not found.
glXGetProcAddress: glWindowPos3dv not found.
glXGetProcAddress: glWindowPos3f not found.
glXGetProcAddress: glWindowPos3fv not found.
glXGetProcAddress: glWindowPos3i not found.
glXGetProcAddress: glWindowPos3iv not found.
glXGetProcAddress: glWindowPos3s not found.
glXGetProcAddress: glWindowPos3sv not found.
glXGetProcAddress: glMultiTexCoord1dARB not found.
glXGetProcAddress: glMultiTexCoord1dvARB not found.
glXGetProcAddress: glMultiTexCoord1fARB not found.
glXGetProcAddress: glMultiTexCoord1fvARB not found.
glXGetProcAddress: glMultiTexCoord1iARB not found.
glXGetProcAddress: glMultiTexCoord1ivARB not found.
glXGetProcAddress: glMultiTexCoord1sARB not found.
glXGetProcAddress: glMultiTexCoord1svARB not found.
glXGetProcAddress: glMultiTexCoord2dARB not found.
glXGetProcAddress: glMultiTexCoord2dvARB not found.
glXGetProcAddress: glMultiTexCoord2iARB not found.
glXGetProcAddress: glMultiTexCoord2ivARB not found.
glXGetProcAddress: glMultiTexCoord2sARB not found.
glXGetProcAddress: glMultiTexCoord2svARB not found.
glXGetProcAddress: glMultiTexCoord3dARB not found.
glXGetProcAddress: glMultiTexCoord3dvARB not found.
glXGetProcAddress: glMultiTexCoord3fARB not found.
glXGetProcAddress: glMultiTexCoord3fvARB not found.
glXGetProcAddress: glMultiTexCoord3iARB not found.
glXGetProcAddress: glMultiTexCoord3ivARB not found.
glXGetProcAddress: glMultiTexCoord3sARB not found.
glXGetProcAddress: glMultiTexCoord3svARB not found.
glXGetProcAddress: glMultiTexCoord4dARB not found.
glXGetProcAddress: glMultiTexCoord4dvARB not found.
glXGetProcAddress: glMultiTexCoord4iARB not found.
glXGetProcAddress: glMultiTexCoord4ivARB not found.
glXGetProcAddress: glMultiTexCoord4sARB not found.
glXGetProcAddress: glMultiTexCoord4svARB not found.
glXGetProcAddress: glBlendColorEXT not found.
glXGetProcAddress: glBlendEquationSeparateEXT not found.
glXGetProcAddress: glBlendFuncSeparateEXT not found.
glXGetProcAddress: glSecondaryColorPointerEXT not found.
glXGetProcAddress: glXCreateNewContext not found.
glXGetProcAddress: glXCreatePbuffer not found.
glXGetProcAddress: glXCreatePixmap not found.
glXGetProcAddress: glXDestroyPbuffer not found.
glXGetProcAddress: glXDestroyPixmap not found.
glXGetProcAddress: glXGetCurrentReadDrawable not found.
glXGetProcAddress: glXGetSelectedEvent not found.
glXGetProcAddress: glXMakeContextCurrent not found.
glXGetProcAddress: glXQueryContext not found.
glXGetProcAddress: glXQueryDrawable not found.
glXGetProcAddress: glXSelectEvent not found.
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
stub: void glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);

Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0  0x00000000 in ?? ()
#1  0x001036de in ?? ()
#2  0x000bc08c in ?? ()
#3  0x000bd404 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Even though LIBGL_DEBUG was set and both libGL and libGLU were unstripped it's still the best I can do regarding the stacktrace.

lunixbochs commented 9 years ago

This is almost certainly calling one of the functions from glXGetProcAddress that's not implemented. I'll figure out which one and stub it or implement it.

MagaTailor commented 9 years ago

Hopefully it can handle the in-game window overlays better. All the 3d effects could be sacrificed to get the text and images :)