I have been fighting a seg fault and crash on OpenSG startup for about 2 
weeks.  I finally tracked it down to a problem with function lookups in 
OSGWindow.cpp.  The problem was that my executable was not linked to a 
GL library so the lookup code in OpenSG fellback to just trying to find 
libGL.so on the system and pull the glXGetProcAddress symbol from there. 
  Normally this may work, but the library it found on my system was the 
mesa library instead of the Nvidia library.  This made all calls to the 
looked up functions seg fault immediately.  In other words, this 
fallback is pretty fragile and when it does something wrong it is very 
wrong and very difficult to track down.

In an attempt to prevent something like this from happening again, I 
just committed a patch to OSGWindow.cpp (see: 
http://opensg.vrsource.org/trac/changeset/851 ) that adds support for 
using glXGetProcAddress directly.

I know I tried to get something like this in before and some people had 
problems with it (because they were using 1.4 GLX headers and a 1.3 GLX 
library), but I think we have to find a way to keep some code like this 
in there.  IMHO it is a bit crazy to ignore the most directly way we 
have of looking up GL functions (ie. using the method directly from the 
GL library that OpenSG is linked against).  I don't want other people to 
suffer through the pain I have had over the past weeks trying to track 
this down.

Does anyone have objections to this patch or any ideas on how to better 
implement it?

-Allen

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Opensg-core mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-core

Reply via email to