segfault with panda3d

Hi folks.

I’m starting with panda and python on a gentoo_x64 system. I compiled panda my own with the latest cvs tree (date 11.Sep).
So I started coding and got a segfault while importing DirectStart.

import direct.directbase.DirectStart

yes, thats all the code :wink: and i get this output

localhost panda3d% python main.py
DirectStart: Starting the game.
Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
zsh: segmentation fault  python main.py

i compiled panda with

makepanda/makepanda.py --everything --optimize 3 --no-jpeg --no-max2011 --no-max2010 --no-max2009 --no-max9 --no-max8 --no-max7 --no-max6 --no-maya2011 --no-maya2010 --no-maya2009 --no-maya2008 --no-maya85 --no-maya8 --no-maya7 --no-maya65 --no-maya6

could somebody help? any hint on how to debug this would also help.

greetings
nurbs999

I would start by running pview, just to prove you get the same segment fault there.

Then I would change “load-display pandagl” to “load-display tinydisplay” to see if you get a segment fault then. If you don’t, then there is probably something wrong with your OpenGL drivers. Do other 3D applications run successfully? Can you update your drivers?

David

pview produces the same segfault.
where do i set the “load-display” driver?
i already have the newest drivers; btw its a Intel X4500 gpu
all other openGL applications run fine. i used another engine before i started with panda and opengl ran fine.

The setting is made in your Config.prc file.

OpenGL provides several different interfaces to open a window in X11. It may be that Panda’s choice of interfaces happens to be buggy in your drivers, whereas another pathway would work fine. It’s difficult to speculate from here. Are you familiar enough with C++ to research this further in the source code?

David

tinydisplay works, i only get the segfault when using opengl.
i am familiar enough to C++ but since this is my first day with panda (oh, the second day has just begun :wink:) i appreciate any help with fixing the pathway.

i set the notify level to debug and got this right before the segfault

........
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_mirrored_repeat 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_texture_mirror_clamp 0
:display:gsg:glgsg(debug): max texture dimension = 4096, max 3d texture = 256, max 2d texture array = 0, max cube map = 2048
:display:gsg:glgsg(debug): max_elements_vertices = 3000, max_elements_indices = 3000
:display:gsg:glgsg(debug): vertex buffer objects are supported.
:display:gsg:glgsg(debug): Supported compressed texture formats:
  GL_COMPRESSED_RGB_FXT1_3DFX
  GL_COMPRESSED_RGBA_FXT1_3DFX
  Unknown compressed format 0x8c4c
  Unknown compressed format 0x8c4d
  Unknown compressed format 0x8c4e
  Unknown compressed format 0x8c4f
:display:gsg:glgsg(debug): HAS EXT GL_EXT_texture_filter_anisotropic 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_stencil_wrap 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_stencil_two_side 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_draw_instanced 0
:display:gsg:glgsg(debug): HAS EXT GL_EXT_draw_instanced 0
:display:gsg:glgsg(debug): max lights = 8
:display:gsg:glgsg(debug): max clip planes = 6
:display:gsg:glgsg(debug): max texture stages = 8
:display:gsg:glgsg(debug): HAS EXT GLX_SGI_swap_control 1
:display:glxdisplay(debug): supports_swap_control = 1
:display:glxdisplay(debug): supports_fbconfig = 1
:display:glxdisplay(debug): supports_pbuffer = 1 sgix = 0
:display:glxdisplay: No suitable FBConfig contexts available.
:display:x11display(debug): Raw mice not requested.
Segmentation fault

Hmm, try adding each of these lines to your Config.prc file:

glx-get-proc-address 0
glx-get-os-address 0
gl-support-fbo 0
glx-support-fbconfig 0
glx-support-pbuffer 0

These each disable some feature or another of OpenGL/X11, which might or might not cause problems on some systems.

If that works, then try them one at a time to isolate the variable(s) that let you get in.

David

thanks. now something really weired is happening. if i set notify-level to warning, i get a segfault

Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
:display:gsg:glgsg(warning): glPointParameterfv advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): glDrawRangeElements advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): 3-D textures advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Compressed textures advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Multitexture advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Buffers advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Occlusion queries advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): BlendEquation advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:gsg:glgsg(warning): BlendColor advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:glxdisplay(error): Driver claims to support GLX_SGI_swap_control extension, but does not define all functions.
Segmentation fault

but if i set notify-level to debug and add “glx-get-{os,proc}-address to 0” the code runs even though the tutorial scene is missing some textures (the panda in the jungle scene)
http://img715.imageshack.us/img715/3127/pandafailu.jpg

So, I don’t know why the textures are missing–that might be something unrelated–but the glx-get-{os,proc}-address variables control the way that OpenGL extension functions are queried from your OpenGL library. So maybe there is something wrong with the way your OpenGL library is providing these extension functions. Can you enable either one of these variables safely?

I don’t understand why you get a segfault with notify-level set to warning, but not debug. Can you show me the stack trace of the segfault in gdb?

David

GNU gdb (Gentoo 7.1 p1) 7.1
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/bin/python...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/python 
process 20393 is executing new program: /usr/bin/python2.6
[Thread debugging using libthread_db enabled]
Python 2.6.5 (release26-maint, Jul 30 2010, 02:07:24) 
[GCC 4.4.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import direct.directbase.DirectStart
DirectStart: Starting the game.
Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
:display:gsg:glgsg(warning): glPointParameterfv advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): glDrawRangeElements advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): 3-D textures advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Compressed textures advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Multitexture advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Buffers advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Occlusion queries advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): BlendEquation advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:gsg:glgsg(warning): BlendColor advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:glxdisplay(error): Driver claims to support GLX_SGI_swap_control extension, but does not define all functions.

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe683a273 in glXMakeCurrentReadSGI () from //usr/lib64/opengl/xorg-x11/lib/libGL.so.1
(gdb) backtrace
#0  0x00007fffe683a273 in glXMakeCurrentReadSGI () from //usr/lib64/opengl/xorg-x11/lib/libGL.so.1
#1  0x00007fffe6d04132 in glxGraphicsWindow::open_window() () from /usr/local/lib64/panda3d/libpandagl.so
#2  0x00007ffff3b8623e in GraphicsWindow::set_properties_now(WindowProperties&) () from /usr/local/lib64/panda3d/libpanda.so
#3  0x00007fffe6cbe307 in x11GraphicsWindow::set_properties_now(WindowProperties&) () from /usr/local/lib64/panda3d/libpandagl.so
#4  0x00007ffff3b86778 in GraphicsWindow::process_events() () from /usr/local/lib64/panda3d/libpanda.so
#5  0x00007fffe6cbedd6 in x11GraphicsWindow::process_events() () from /usr/local/lib64/panda3d/libpandagl.so
#6  0x00007ffff3b67341 in GraphicsEngine::process_events(ov_set<PointerTo<GraphicsOutput>, IndirectLess<GraphicsOutput> > const&, Thread*) () from /usr/local/lib64/panda3d/libpanda.so
#7  0x00007ffff3b72d27 in GraphicsEngine::WindowRenderer::do_windows(GraphicsEngine*, Thread*) () from /usr/local/lib64/panda3d/libpanda.so
#8  0x00007ffff3b7ffde in GraphicsEngine::open_windows() () from /usr/local/lib64/panda3d/libpanda.so
#9  0x00007ffff3b9b031 in GraphicsEngine::make_output(GraphicsPipe*, std::string const&, int, FrameBufferProperties const&, WindowProperties const&, int, GraphicsStateGuardian*, GraphicsOutput*) () from /usr/local/lib64/panda3d/libpanda.so
#10 0x00007ffff3bf074e in Dtool_GraphicsEngine_make_output_552(_object*, _object*, _object*) () from /usr/local/lib64/panda3d/libpanda.so
#11 0x00007ffff7b168b5 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#12 0x00007ffff7b186f7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#13 0x00007ffff7aabdbd in ?? () from /usr/lib/libpython2.6.so.1.0
#14 0x00007ffff7a84112 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#15 0x00007ffff7b154bb in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#16 0x00007ffff7b186f7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#17 0x00007ffff7aabdbd in ?? () from /usr/lib/libpython2.6.so.1.0
#18 0x00007ffff7a84112 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#19 0x00007ffff7b154bb in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#20 0x00007ffff7b186f7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#21 0x00007ffff7b16ac1 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#22 0x00007ffff7b186f7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#23 0x00007ffff7aabcc0 in ?? () from /usr/lib/libpython2.6.so.1.0
#24 0x00007ffff7a84112 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#25 0x00007ffff7a96b8d in ?? () from /usr/lib/libpython2.6.so.1.0
#26 0x00007ffff7a84112 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#27 0x00007ffff7b10cb2 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.6.so.1.0
#28 0x00007ffff7a96356 in PyInstance_New () from /usr/lib/libpython2.6.so.1.0
#29 0x00007ffff7a84112 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#30 0x00007ffff7b162ec in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#31 0x00007ffff7b186f7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#32 0x00007ffff7b187d2 in PyEval_EvalCode () from /usr/lib/libpython2.6.so.1.0
#33 0x00007ffff7b27aa1 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.6.so.1.0
#34 0x00007ffff7b27f76 in ?? () from /usr/lib/libpython2.6.so.1.0
#35 0x00007ffff7b293fe in ?? () from /usr/lib/libpython2.6.so.1.0
#36 0x00007ffff7b29693 in ?? () from /usr/lib/libpython2.6.so.1.0
#37 0x00007ffff7b29d08 in ?? () from /usr/lib/libpython2.6.so.1.0
#38 0x00007ffff7b2aa45 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.6.so.1.0
#39 0x00007ffff7b1075f in ?? () from /usr/lib/libpython2.6.so.1.0
#40 0x00007ffff7a84112 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#41 0x00007ffff7b10cb2 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.6.so.1.0
#42 0x00007ffff7b138a8 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#43 0x00007ffff7b186f7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#44 0x00007ffff7b187d2 in PyEval_EvalCode () from /usr/lib/libpython2.6.so.1.0
#45 0x00007ffff7b3289c in ?? () from /usr/lib/libpython2.6.so.1.0
#46 0x00007ffff7b3432c in PyRun_InteractiveOneFlags () from /usr/lib/libpython2.6.so.1.0
#47 0x00007ffff7b3453e in PyRun_InteractiveLoopFlags () from /usr/lib/libpython2.6.so.1.0
#48 0x00007ffff7b3464c in PyRun_AnyFileExFlags () from /usr/lib/libpython2.6.so.1.0
#49 0x00007ffff7b3fecc in Py_Main () from /usr/lib/libpython2.6.so.1.0
#50 0x00007ffff74d9d2d in __libc_start_main () from /lib/libc.so.6
#51 0x00000000004008c9 in _start ()
(gdb) 

Hmm, hard to see how that could be related to the notify-level. Could it be just random, and it only appears to be related?

David

well, could be, but whenever i change this panda throws the segfault.
one other thing, how do get rid of this error:

display:glxdisplay(error): Driver claims to support GLX_SGI_swap_control extension, but does not define all functions.

just reinstalled panda with lastest cvs version and i get a different error. but still only if notify-level is not “spam” or “debug”


Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
:display:gsg:glgsg(warning): glPointParameterfv advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): glDrawRangeElements advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): 3-D textures advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Compressed textures advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Multitexture advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Buffers advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): Occlusion queries advertised as supported by OpenGL runtime, but could not get pointers to extension functions.
:display:gsg:glgsg(warning): BlendEquation advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:gsg:glgsg(warning): BlendColor advertised as supported by OpenGL runtime, but could not get pointers to extension function.
:display:gsg:glgsg(error): at 1448 of panda/src/glstuff/glGraphicsStateGuardian_src.cxx : GL error 1280
Segmentation fault

which means “1280 GL_INVALID_ENUM”

That error message is a side-effect of setting both glx-get-{os,proc}-address to 0. Panda needs at least one of these enabled in order to get a pointer to the needed OpenGL extension functions. Without either of them, it will have to disable certain OpenGL extensions (most of which probably won’t have a dramatic effect on your code, other than the error message). You could also simply squelch the error message with:

notify-level-glgsg error

But I think we still haven’t isolated the fundamental problem yet. The stack trace you posted shows the crash happening within your OpenGL driver, which has nothing to do with the notify-level setting, so it’s not clear to me how making this change has anything to do with the crash, other than by possibly changing the application timing. For instance, maybe having “notify-level debug” slows down the application enough to avoid some race-condition type crash in the driver.

David

since this is an intel gpu with latest intel driver i maybe should report the bracktrace to the intel developer?

I doubt this will be enough information for them to go on. We need to isolate precisely what sequence of calls leads to the crash. It appears to be a subtle combination of Panda3D calls and timing, so it will be a difficult problem to track down from either end.

ok, so whats next?

Someone with your graphics card and drivers, a copy of gcc and gdb, and a lot of patience, will need to sit down with the Panda3D code, and do some hardcore investigation. This means getting to know both the Panda3D code and the OpenGL API well, and trying to modify the existing code to use different pathways to determine which pathways are stable and which are unstable.

David

i just tried the latest cvs version and my problem even got worse. i get a segfault no matter which notify-level i try

:interrogatedb(debug): Creating interrogate database
:interrogatedb(debug): Got interrogate data for module libexpress
:interrogatedb(debug): Got interrogate data for module libdownloader
:express(debug): mount / under /
:interrogatedb(debug): Got interrogate data for module libpnmtext
:interrogatedb(debug): Got interrogate data for module libdxml
:interrogatedb(debug): Got interrogate data for module libnativenet
:interrogatedb(debug): Got interrogate data for module libnet
:interrogatedb(debug): Got interrogate data for module libpgui
:interrogatedb(debug): Got interrogate data for module libaudio
:interrogatedb(debug): Got interrogate data for module libputil
:interrogatedb(debug): Got interrogate data for module liblerp
:interrogatedb(debug): Got interrogate data for module libtform
:interrogatedb(debug): Got interrogate data for module libtext
:interrogatedb(debug): Got interrogate data for module libpnmimage
:pnmimage(debug): Registering image type SGI RGB
:pnmimage(debug): Registering image type Targa
:pnmimage(debug): Registering image type Raw binary RGB
:pnmimage(debug): Registering image type SoftImage
:pnmimage(debug): Registering image type Windows BMP
:pnmimage(debug): Registering image type NetPBM-style PBM/PGM/PPM/PNM
:pnmimage(debug): Registering image type JPEG
:pnmimage:png(debug): PNG version 10404
:pnmimage(debug): Registering image type PNG
:pnmimage:tiff(debug): LIBTIFF, Version 3.9.2
Copyright (c) 1988-1996 Sam Leffler
Copyright (c) 1991-1996 Silicon Graphics, Inc.
:pnmimage(debug): Registering image type TIFF
:interrogatedb(debug): Got interrogate data for module libparametrics
:interrogatedb(debug): Got interrogate data for module libmathutil
:interrogatedb(debug): Got interrogate data for module liblinmath
:interrogatedb(debug): Got interrogate data for module libgsgbase
:interrogatedb(debug): Got interrogate data for module libgobj
:interrogatedb(debug): Got interrogate data for module libevent
:interrogatedb(debug): Got interrogate data for module libpipeline
:interrogatedb(debug): Got interrogate data for module libdisplay
:interrogatedb(debug): Got interrogate data for module libdgraph
:interrogatedb(debug): Got interrogate data for module libdevice
:interrogatedb(debug): Got interrogate data for module libcollide
:interrogatedb(debug): Got interrogate data for module libchar
:interrogatedb(debug): Got interrogate data for module libpstatclient
:interrogatedb(debug): Got interrogate data for module libchan
:interrogatedb(debug): Got interrogate data for module libgrutil
:interrogatedb(debug): Got interrogate data for module libmovies
:interrogatedb(debug): Got interrogate data for module libpgraph
:interrogatedb(debug): Got interrogate data for module libpgraphnodes
:interrogatedb(debug): Got interrogate data for module librecorder
:interrogatedb(debug): Got interrogate data for module libdistributed
:interrogatedb(debug): Got interrogate data for module libinterval
:interrogatedb(debug): Got interrogate data for module libdeadrec
:interrogatedb(debug): Got interrogate data for module libshowbase
:interrogatedb(debug): Got interrogate data for module libdcparser
:interrogatedb(debug): Got interrogate data for module libeffects
:interrogatedb(debug): Got interrogate data for module libdistort
:task(debug): Adding GenericAsyncTask event
:event(debug): Throwing event TaskManager-addTask(GenericAsyncTask)
:pgraph(debug): Constructing 0xdd61f8, data
:task(debug): Adding GenericAsyncTask data_loop
:event(debug): Throwing event TaskManager-addTask(GenericAsyncTask)
:pgraph(debug): Constructing 0xdd6da8, wireframe
:display: loading display module: libpandagl.so
:display(debug): symbol of get_pipe_type_pandagl = 0x7fb6672d2460
:display(debug): pipe_type_index = 541
:display(debug): pipe_type = glxGraphicsPipe
Known pipe types:
  glxGraphicsPipe
(all display modules loaded.)
:task(debug): Adding GenericAsyncTask igloop
:event(debug): Throwing event TaskManager-addTask(GenericAsyncTask)
:display(debug): DisplayRegion::do_compute_pixels(800, 600)
:display(debug): DisplayRegion::do_compute_pixels(800, 600)
:display(debug): Creating new window window1
:display(debug): Created glxGraphicsWindow 0xdfd998
:display(debug): Windows resorted: window1(0)
 window1(0)
:task(debug): AsyncTaskManager TaskManager task chain loader; 0 tasks: set_num_threads(1)
:display:gsg:glgsg(debug): GL_VENDOR = Tungsten Graphics, Inc
:display:gsg:glgsg(debug): GL_RENDERER = Mesa DRI Intel(R) G45/G43 GEM 20100328 2010Q1 
:display:gsg:glgsg(debug): GL_VERSION = 2.1 Mesa 7.8.2, decoded to 2.1
:display:gsg:glgsg(debug): GLX_VENDOR (client) = Mesa Project and SGI
:display:gsg:glgsg(debug): GLX_VERSION (client) = 1.4
:display:gsg:glgsg(debug): GLX_VENDOR (server) = SGI
:display:gsg:glgsg(debug): GLX_VERSION (server) = 1.4
:display:gsg:glgsg(debug): GLX_VERSION = 1.4
:display:gsg:glgsg(debug): GL Extensions:
:display:gsg:glgsg(debug): GLX_ARB_get_proc_address
:display:gsg:glgsg(debug): GLX_ARB_multisample
:display:gsg:glgsg(debug): GLX_EXT_import_context
:display:gsg:glgsg(debug): GLX_EXT_texture_from_pixmap
:display:gsg:glgsg(debug): GLX_EXT_visual_info
:display:gsg:glgsg(debug): GLX_EXT_visual_rating
:display:gsg:glgsg(debug): GLX_INTEL_swap_event
:display:gsg:glgsg(debug): GLX_MESA_copy_sub_buffer
:display:gsg:glgsg(debug): GLX_MESA_swap_control
:display:gsg:glgsg(debug): GLX_OML_swap_method
:display:gsg:glgsg(debug): GLX_OML_sync_control
:display:gsg:glgsg(debug): GLX_SGIS_multisample
:display:gsg:glgsg(debug): GLX_SGIX_fbconfig
:display:gsg:glgsg(debug): GLX_SGIX_pbuffer
:display:gsg:glgsg(debug): GLX_SGIX_visual_select_group
:display:gsg:glgsg(debug): GLX_SGI_make_current_read
:display:gsg:glgsg(debug): GLX_SGI_swap_control
:display:gsg:glgsg(debug): GLX_SGI_video_sync
:display:gsg:glgsg(debug): GL_3DFX_texture_compression_FXT1
:display:gsg:glgsg(debug): GL_APPLE_client_storage
:display:gsg:glgsg(debug): GL_APPLE_object_purgeable
:display:gsg:glgsg(debug): GL_APPLE_packed_pixels
:display:gsg:glgsg(debug): GL_APPLE_vertex_array_object
:display:gsg:glgsg(debug): GL_ARB_copy_buffer
:display:gsg:glgsg(debug): GL_ARB_depth_clamp
:display:gsg:glgsg(debug): GL_ARB_depth_texture
:display:gsg:glgsg(debug): GL_ARB_draw_buffers
:display:gsg:glgsg(debug): GL_ARB_draw_elements_base_vertex
:display:gsg:glgsg(debug): GL_ARB_fragment_coord_conventions
:display:gsg:glgsg(debug): GL_ARB_fragment_program
:display:gsg:glgsg(debug): GL_ARB_fragment_program_shadow
:display:gsg:glgsg(debug): GL_ARB_fragment_shader
:display:gsg:glgsg(debug): GL_ARB_framebuffer_object
:display:gsg:glgsg(debug): GL_ARB_half_float_pixel
:display:gsg:glgsg(debug): GL_ARB_half_float_vertex
:display:gsg:glgsg(debug): GL_ARB_map_buffer_range
:display:gsg:glgsg(debug): GL_ARB_multisample
:display:gsg:glgsg(debug): GL_ARB_multitexture
:display:gsg:glgsg(debug): GL_ARB_occlusion_query
:display:gsg:glgsg(debug): GL_ARB_pixel_buffer_object
:display:gsg:glgsg(debug): GL_ARB_point_parameters
:display:gsg:glgsg(debug): GL_ARB_point_sprite
:display:gsg:glgsg(debug): GL_ARB_provoking_vertex
:display:gsg:glgsg(debug): GL_ARB_seamless_cube_map
:display:gsg:glgsg(debug): GL_ARB_shader_objects
:display:gsg:glgsg(debug): GL_ARB_shading_language_100
:display:gsg:glgsg(debug): GL_ARB_shading_language_120
:display:gsg:glgsg(debug): GL_ARB_shadow
:display:gsg:glgsg(debug): GL_ARB_sync
:display:gsg:glgsg(debug): GL_ARB_texture_border_clamp
:display:gsg:glgsg(debug): GL_ARB_texture_compression
:display:gsg:glgsg(debug): GL_ARB_texture_cube_map
:display:gsg:glgsg(debug): GL_ARB_texture_env_add
:display:gsg:glgsg(debug): GL_ARB_texture_env_combine
:display:gsg:glgsg(debug): GL_ARB_texture_env_crossbar
:display:gsg:glgsg(debug): GL_ARB_texture_env_dot3
:display:gsg:glgsg(debug): GL_ARB_texture_mirrored_repeat
:display:gsg:glgsg(debug): GL_ARB_texture_non_power_of_two
:display:gsg:glgsg(debug): GL_ARB_texture_rectangle
:display:gsg:glgsg(debug): GL_ARB_transpose_matrix
:display:gsg:glgsg(debug): GL_ARB_vertex_array_bgra
:display:gsg:glgsg(debug): GL_ARB_vertex_array_object
:display:gsg:glgsg(debug): GL_ARB_vertex_buffer_object
:display:gsg:glgsg(debug): GL_ARB_vertex_program
:display:gsg:glgsg(debug): GL_ARB_vertex_shader
:display:gsg:glgsg(debug): GL_ARB_window_pos
:display:gsg:glgsg(debug): GL_ATI_blend_equation_separate
:display:gsg:glgsg(debug): GL_ATI_envmap_bumpmap
:display:gsg:glgsg(debug): GL_ATI_separate_stencil
:display:gsg:glgsg(debug): GL_ATI_texture_env_combine3
:display:gsg:glgsg(debug): GL_EXT_abgr
:display:gsg:glgsg(debug): GL_EXT_bgra
:display:gsg:glgsg(debug): GL_EXT_blend_color
:display:gsg:glgsg(debug): GL_EXT_blend_equation_separate
:display:gsg:glgsg(debug): GL_EXT_blend_func_separate
:display:gsg:glgsg(debug): GL_EXT_blend_logic_op
:display:gsg:glgsg(debug): GL_EXT_blend_minmax
:display:gsg:glgsg(debug): GL_EXT_blend_subtract
:display:gsg:glgsg(debug): GL_EXT_compiled_vertex_array
:display:gsg:glgsg(debug): GL_EXT_copy_texture
:display:gsg:glgsg(debug): GL_EXT_cull_vertex
:display:gsg:glgsg(debug): GL_EXT_draw_buffers2
:display:gsg:glgsg(debug): GL_EXT_draw_range_elements
:display:gsg:glgsg(debug): GL_EXT_fog_coord
:display:gsg:glgsg(debug): GL_EXT_framebuffer_blit
:display:gsg:glgsg(debug): GL_EXT_framebuffer_object
:display:gsg:glgsg(debug): GL_EXT_gpu_program_parameters
:display:gsg:glgsg(debug): GL_EXT_multi_draw_arrays
:display:gsg:glgsg(debug): GL_EXT_packed_depth_stencil
:display:gsg:glgsg(debug): GL_EXT_packed_pixels
:display:gsg:glgsg(debug): GL_EXT_pixel_buffer_object
:display:gsg:glgsg(debug): GL_EXT_point_parameters
:display:gsg:glgsg(debug): GL_EXT_polygon_offset
:display:gsg:glgsg(debug): GL_EXT_provoking_vertex
:display:gsg:glgsg(debug): GL_EXT_rescale_normal
:display:gsg:glgsg(debug): GL_EXT_secondary_color
:display:gsg:glgsg(debug): GL_EXT_separate_specular_color
:display:gsg:glgsg(debug): GL_EXT_shadow_funcs
:display:gsg:glgsg(debug): GL_EXT_stencil_two_side
:display:gsg:glgsg(debug): GL_EXT_stencil_wrap
:display:gsg:glgsg(debug): GL_EXT_subtexture
:display:gsg:glgsg(debug): GL_EXT_texture
:display:gsg:glgsg(debug): GL_EXT_texture3D
:display:gsg:glgsg(debug): GL_EXT_texture_cube_map
:display:gsg:glgsg(debug): GL_EXT_texture_edge_clamp
:display:gsg:glgsg(debug): GL_EXT_texture_env_add
:display:gsg:glgsg(debug): GL_EXT_texture_env_combine
:display:gsg:glgsg(debug): GL_EXT_texture_env_dot3
:display:gsg:glgsg(debug): GL_EXT_texture_filter_anisotropic
:display:gsg:glgsg(debug): GL_EXT_texture_lod_bias
:display:gsg:glgsg(debug): GL_EXT_texture_object
:display:gsg:glgsg(debug): GL_EXT_texture_rectangle
:display:gsg:glgsg(debug): GL_EXT_texture_sRGB
:display:gsg:glgsg(debug): GL_EXT_texture_swizzle
:display:gsg:glgsg(debug): GL_EXT_vertex_array
:display:gsg:glgsg(debug): GL_EXT_vertex_array_bgra
:display:gsg:glgsg(debug): GL_IBM_multimode_draw_arrays
:display:gsg:glgsg(debug): GL_IBM_rasterpos_clip
:display:gsg:glgsg(debug): GL_IBM_texture_mirrored_repeat
:display:gsg:glgsg(debug): GL_INGR_blend_func_separate
:display:gsg:glgsg(debug): GL_MESA_pack_invert
:display:gsg:glgsg(debug): GL_MESA_texture_signed_rgba
:display:gsg:glgsg(debug): GL_MESA_window_pos
:display:gsg:glgsg(debug): GL_MESA_ycbcr_texture
:display:gsg:glgsg(debug): GL_NV_blend_square
:display:gsg:glgsg(debug): GL_NV_depth_clamp
:display:gsg:glgsg(debug): GL_NV_light_max_exponent
:display:gsg:glgsg(debug): GL_NV_packed_depth_stencil
:display:gsg:glgsg(debug): GL_NV_texgen_reflection
:display:gsg:glgsg(debug): GL_NV_texture_env_combine4
:display:gsg:glgsg(debug): GL_NV_texture_rectangle
:display:gsg:glgsg(debug): GL_NV_vertex_program
:display:gsg:glgsg(debug): GL_NV_vertex_program1_1
:display:gsg:glgsg(debug): GL_OES_read_format
:display:gsg:glgsg(debug): GL_SGIS_generate_mipmap
:display:gsg:glgsg(debug): GL_SGIS_texture_border_clamp
:display:gsg:glgsg(debug): GL_SGIS_texture_edge_clamp
:display:gsg:glgsg(debug): GL_SGIS_texture_lod
:display:gsg:glgsg(debug): GL_SUN_multi_draw_arrays
:display:gsg:glgsg(debug): HAS EXT GL_ARB_point_sprite 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_vertex_blend 0
:display:gsg:glgsg(debug): HAS EXT GL_ARB_matrix_palette 0
:display:gsg:glgsg(debug): HAS EXT GL_ARB_depth_texture 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_packed_depth_stencil 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_texture_array 0
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_cube_map 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_bgra 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_rescale_normal 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_multisample 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_non_power_of_two 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_depth_texture 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_shadow 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_fragment_program_shadow 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_env_combine 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_env_crossbar 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_env_dot3 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_geometry_shader4 0
:display:gsg:glgsg(debug): HAS EXT GL_EXT_framebuffer_object 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_framebuffer_multisample 0
:display:gsg:glgsg(debug): HAS EXT GL_NV_framebuffer_multisample_coverage 0
:display:gsg:glgsg(debug): HAS EXT GL_EXT_framebuffer_blit 1
:display:gsg:glgsg(debug): Occlusion query counter provides 64 bits.
:display:gsg:glgsg(debug): HAS EXT GL_SGIS_texture_edge_clamp 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_border_clamp 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_texture_mirrored_repeat 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_texture_mirror_clamp 0
:display:gsg:glgsg(debug): max texture dimension = 4096, max 3d texture = 256, max 2d texture array = 0, max cube map = 2048
:display:gsg:glgsg(debug): max_elements_vertices = 3000, max_elements_indices = 3000
:display:gsg:glgsg(debug): vertex buffer objects are supported.
:display:gsg:glgsg(debug): Supported compressed texture formats:
  GL_COMPRESSED_RGB_FXT1_3DFX
  GL_COMPRESSED_RGBA_FXT1_3DFX
  Unknown compressed format 0x8c4c
  Unknown compressed format 0x8c4d
  Unknown compressed format 0x8c4e
  Unknown compressed format 0x8c4f
:display:gsg:glgsg(debug): HAS EXT GL_EXT_texture_filter_anisotropic 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_stencil_wrap 1
:display:gsg:glgsg(debug): HAS EXT GL_EXT_stencil_two_side 1
:display:gsg:glgsg(debug): HAS EXT GL_ARB_draw_instanced 0
:display:gsg:glgsg(debug): HAS EXT GL_EXT_draw_instanced 0
:display:gsg:glgsg(debug): max lights = 8
:display:gsg:glgsg(debug): max clip planes = 6
:display:gsg:glgsg(debug): max texture stages = 8
:display:gsg:glgsg(debug): HAS EXT GLX_SGI_swap_control 1
:display:glxdisplay(debug): supports_swap_control = 1
:display:glxdisplay(debug): supports_fbconfig = 1
:display:glxdisplay(debug): supports_pbuffer = 1 sgix = 0
:display:glxdisplay: No suitable FBConfig contexts available.
:display:x11display(debug): Raw mice not requested.
zsh: segmentation fault

and a backtrace

Program received signal SIGSEGV, Segmentation fault.
0x00007fffe7c99273 in glXMakeCurrentReadSGI () from //usr/lib64/opengl/xorg-x11/lib/libGL.so.1
(gdb) backtrace
#0  0x00007fffe7c99273 in glXMakeCurrentReadSGI () from //usr/lib64/opengl/xorg-x11/lib/libGL.so.1
#1  0x00007fffe5d1d132 in glxGraphicsWindow::open_window() () from /usr/local/lib64/panda3d/libpandagl.so
#2  0x00007ffff3b8392e in GraphicsWindow::set_properties_now(WindowProperties&) () from /usr/local/lib64/panda3d/libpanda.so
#3  0x00007fffe5cd7307 in x11GraphicsWindow::set_properties_now(WindowProperties&) () from /usr/local/lib64/panda3d/libpandagl.so
#4  0x00007ffff3b83e68 in GraphicsWindow::process_events() () from /usr/local/lib64/panda3d/libpanda.so
#5  0x00007fffe5cd7dd6 in x11GraphicsWindow::process_events() () from /usr/local/lib64/panda3d/libpandagl.so
#6  0x00007ffff3b64a31 in GraphicsEngine::process_events(ov_set<PointerTo<GraphicsOutput>, IndirectLess<GraphicsOutput> > const&, Thread*) ()
   from /usr/local/lib64/panda3d/libpanda.so
#7  0x00007ffff3b70417 in GraphicsEngine::WindowRenderer::do_windows(GraphicsEngine*, Thread*) () from /usr/local/lib64/panda3d/libpanda.so
#8  0x00007ffff3b7d6ce in GraphicsEngine::open_windows() () from /usr/local/lib64/panda3d/libpanda.so
#9  0x00007ffff3b98721 in GraphicsEngine::make_output(GraphicsPipe*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, FrameBufferProperties const&, WindowProperties const&, int, GraphicsStateGuardian*, GraphicsOutput*) () from /usr/local/lib64/panda3d/libpanda.so
#10 0x00007ffff3bede3e in Dtool_GraphicsEngine_make_output_552(_object*, _object*, _object*) () from /usr/local/lib64/panda3d/libpanda.so
#11 0x00007ffff7b15875 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#12 0x00007ffff7b176b7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#13 0x00007ffff7aaadad in ?? () from /usr/lib/libpython2.6.so.1.0
#14 0x00007ffff7a83102 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#15 0x00007ffff7b1447b in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#16 0x00007ffff7b176b7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#17 0x00007ffff7aaadad in ?? () from /usr/lib/libpython2.6.so.1.0
#18 0x00007ffff7a83102 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#19 0x00007ffff7b1447b in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#20 0x00007ffff7b176b7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#21 0x00007ffff7b15a81 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#22 0x00007ffff7b176b7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#23 0x00007ffff7aaacb0 in ?? () from /usr/lib/libpython2.6.so.1.0
#24 0x00007ffff7a83102 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#25 0x00007ffff7a95b7d in ?? () from /usr/lib/libpython2.6.so.1.0
#26 0x00007ffff7a83102 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#27 0x00007ffff7b0fc82 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.6.so.1.0
#28 0x00007ffff7a95346 in PyInstance_New () from /usr/lib/libpython2.6.so.1.0
#29 0x00007ffff7a83102 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#30 0x00007ffff7b152ac in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#31 0x00007ffff7b176b7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#32 0x00007ffff7b17792 in PyEval_EvalCode () from /usr/lib/libpython2.6.so.1.0
#33 0x00007ffff7b26a61 in PyImport_ExecCodeModuleEx () from /usr/lib/libpython2.6.so.1.0
#34 0x00007ffff7b26f36 in ?? () from /usr/lib/libpython2.6.so.1.0
#35 0x00007ffff7b283be in ?? () from /usr/lib/libpython2.6.so.1.0
#36 0x00007ffff7b28653 in ?? () from /usr/lib/libpython2.6.so.1.0
#37 0x00007ffff7b28cc8 in ?? () from /usr/lib/libpython2.6.so.1.0
#38 0x00007ffff7b29a05 in PyImport_ImportModuleLevel () from /usr/lib/libpython2.6.so.1.0
#39 0x00007ffff7b0f72f in ?? () from /usr/lib/libpython2.6.so.1.0
#40 0x00007ffff7a83102 in PyObject_Call () from /usr/lib/libpython2.6.so.1.0
#41 0x00007ffff7b0fc82 in PyEval_CallObjectWithKeywords () from /usr/lib/libpython2.6.so.1.0
#42 0x00007ffff7b12878 in PyEval_EvalFrameEx () from /usr/lib/libpython2.6.so.1.0
#43 0x00007ffff7b176b7 in PyEval_EvalCodeEx () from /usr/lib/libpython2.6.so.1.0
#44 0x00007ffff7b17792 in PyEval_EvalCode () from /usr/lib/libpython2.6.so.1.0
#45 0x00007ffff7b3185c in ?? () from /usr/lib/libpython2.6.so.1.0
#46 0x00007ffff7b332ec in PyRun_InteractiveOneFlags () from /usr/lib/libpython2.6.so.1.0
#47 0x00007ffff7b334fe in PyRun_InteractiveLoopFlags () from /usr/lib/libpython2.6.so.1.0
#48 0x00007ffff7b3360c in PyRun_AnyFileExFlags () from /usr/lib/libpython2.6.so.1.0
#49 0x00007ffff7b3ee7c in Py_Main () from /usr/lib/libpython2.6.so.1.0
#50 0x00007ffff74d8d2d in __libc_start_main () from /lib/libc.so.6
#51 0x00000000004008c9 in _start ()

I’ve been getting the same behavior in the same old 32-bit Gentoo with a Radeon Mobility 7000 and open drivers. I tried Panda3d from CVS and it appears pretty much the same… I can get it to run (slowly) by increasing the notify-level to either debug or spam and then adding

glx-support-fbconfig 0

as suggested-- that’s the one that did the trick.

When I remove it, I get something probably useless…

--huge snip--
:display:glxdisplay(debug): supports_swap_control = 1
:display:glxdisplay(debug): supports_fbconfig = 1
:display:glxdisplay(debug): supports_pbuffer = 0 sgix = 1
:display:glxdisplay: No suitable FBConfig contexts available.
:display:x11display(debug): Raw mice not requested.

Program received signal SIGSEGV, Segmentation fault.
0xb3768b14 in glXMakeCurrentReadSGI ()
   from //usr/lib/opengl/xorg-x11/lib/libGL.so.1
(gdb) bt
#0  0xb3768b14 in glXMakeCurrentReadSGI ()
   from //usr/lib/opengl/xorg-x11/lib/libGL.so.1
#1  0x08513b18 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) 

I’m off to get those symbols back. Oh, and apparently now using tinydisplay works without these tweaks-- when I first started it was crashing no matter what but I kept updating from CVS and of course updating Gentoo… fun fun.