[Xquartz-dev] FBConfig woes

Stefan Eilemann eilemann at gmail.com
Mon Feb 14 01:38:59 PST 2011


On 11. Feb 2011, at 21:20, Jeremy Huddleston wrote:

> 1) Can you try using 2.6.0's libraries instead of 2.3.6's libraries (use /opt/X11 rather than /usr/X11)

I wish:

eile% ./debug_glx/bin/eqPly.app/Contents/MacOS/eqPly --eq-config examples/configs/config.eqc 
dyld: Symbol not found: _gll_noop
  Referenced from: /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL
  Expected in: /opt/X11/lib//libGL.1.dylib
 in /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL

> 2) Can you provide the crash report (likely saved in ~/Library/Logs/DiagnosticReports)?

See attached file. IN the crash report the stack trace is truncated/corrupted by one frame. In the debugger I reach the glXCreateNewContext call as shown below.

> My guess is that a bad config is being requested, but we certainly shouldn't crash inside glXCreateNewContext.

Neither should GLX 1.2 gets reported nor glXCreateContextWithConfigSGIX return 0 without any error. Any chance of these getting fixed? It's already difficult enough to code for GLX with extensions, and having to care about non-standard implementation behavior makes this even worse. FYI we are using GLEW/GLXEW for this.

As a workaround we fall back to glXGetVisualFromFBConfigSGIX + glXCreateContext which seems to work. See <http://www.equalizergraphics.com/cgi-bin/viewvc.cgi/trunk/src/libs/client/glXWindow.cpp?view=markup&pathrev=5582> 


Cheers,

Stefan.

> 
> 
> On Feb 11, 2011, at 05:03, Stefan Eilemann wrote:
> 
>> Jeremy, all,
>> 
>> this is a followup to bug 466: http://xquartz.macosforge.org/trac/ticket/466
>> 
>> I tried the following to get my implementation working, details below:
>> 
>> 1) Use glXCreateNewContext: crash
>> 2) Use glXCreateContextWithConfigSGIX: return 0
>> 
>> I'm running 2.6.0 with the following libraries:
>> 
>> dyld: loaded: /Users/eile/Software/eq-git/src/./debug_glx/bin/eqPly.app/Contents/MacOS/eqPly
>> dyld: loaded: /Users/eile/Software/eq-git/src/debug_glx/libs/client/libEqualizer.1.0.0.dylib
>> dyld: loaded: /Users/eile/Software/eq-git/src/debug_glx/libs/admin/libEqualizerAdmin.1.0.0.dylib
>> dyld: loaded: /Users/eile/Software/eq-git/src/debug_glx/libs/collage/libCollage.0.2.0.dylib
>> dyld: loaded: /usr/lib/libSystem.B.dylib
>> dyld: loaded: /opt/local/lib/libboost_system-mt.dylib
>> dyld: loaded: /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon
>> dyld: loaded: /usr/X11/lib/libSM.6.dylib
>> dyld: loaded: /usr/X11/lib/libICE.6.dylib
>> dyld: loaded: /usr/X11/lib/libX11.6.dylib
>> dyld: loaded: /usr/X11/lib/libXext.6.dylib
>> dyld: loaded: /usr/X11/lib/libGL.1.dylib
>> ...
>> What's the proper way to get this working?
> 
> 
>> 
>> 
>> Cheers,
>> 
>> Stefan.
>> 
>> 
>> 1)
>> Program received signal EXC_BAD_ACCESS, Could not access memory.
>> Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
>> [Switching to process 2161]
>> 0x0000000000000000 in ?? ()
>> (gdb) bt
>> #0  0x0000000000000000 in ?? ()
>> #1  0x00000001002501eb in eq::GLXWindow::createGLXContext
>> (this=0x10305e4b0, fbConfig=0x10283a200) at
>> /Users/eile/Software/eq-git/src/libs/client/glXWindow.cpp:328
>> ...
>> (gdb) up
>> #1  0x00000001002501eb in eq::GLXWindow::createGLXContext
>> (this=0x10305e4b0, fbConfig=0x10283a200) at
>> /Users/eile/Software/eq-git/src/libs/client/glXWindow.cpp:328
>> 328         GLXContext context = glXCreateNewContext( _xDisplay,
>> fbConfig[ 0 ], type, shCtx, True );
>> (gdb) p glXCreateNewContext
>> $1 = {<text variable, no debug info>} 0x100d70426 <glXCreateNewContext>
>> (gdb) p _xDisplay
>> $3 = (Display *) 0x103805800
>> (gdb) p fbConfig[ 0 ]
>> $4 = (struct __GLXFBConfigRec *) 0x10303a070
>> (gdb) p type
>> $5 = 32788
>> (gdb) p shCtx
>> $6 = (struct __GLXcontextRec *) 0x0
>> 
>> 
>> 2)
>> Breakpoint 2, eq::GLXWindow::createGLXContext (this=0x101a1afc0,
>> fbConfig=0x102060200) at
>> /Users/eile/Software/eq-git/src/libs/client/glXWindow.cpp:328
>> 328         GLXContext context = glXCreateContextWithConfigSGIX(
>> _xDisplay, fbConfig[0], type, shCtx, True );
>> (gdb) n
>> 364         if( !context )
>> (gdb) p context
>> $1 = (struct __GLXcontextRec *) 0x0
>> 
>> -- 
>> http://www.eyescale.ch
>> http://www.equalizergraphics.com
>> http://www.linkedin.com/in/eilemann
>> 
>> _______________________________________________
>> Xquartz-dev mailing list
>> Xquartz-dev at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/xquartz-dev
>> 
> 
> 
> _______________________________________________
> Xquartz-dev mailing list
> Xquartz-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/xquartz-dev

-- 
http://www.eyescale.ch
http://www.equalizergraphics.com
http://www.linkedin.com/in/eilemann


-------------- next part --------------
A non-text attachment was scrubbed...
Name: eqPly_2011-02-14-103622_roku.crash
Type: application/octet-stream
Size: 38390 bytes
Desc: not available
URL: <http://lists.macosforge.org/pipermail/xquartz-dev/attachments/20110214/3edf5b95/attachment-0001.obj>


More information about the Xquartz-dev mailing list