[Xquartz-dev] Help requested debugging rgl under XQuartz

Duncan Murdoch murdoch.duncan at gmail.com
Tue Feb 23 13:31:09 PST 2021


On 23/02/2021 3:47 p.m., Jeremy Huddleston Sequoia wrote:
> 
> 
>> On Feb 23, 2021, at 06:14, Duncan Murdoch <murdoch.duncan at gmail.com 
>> <mailto:murdoch.duncan at gmail.com>> wrote:
>>
>> On 23/02/2021 12:47 a.m., Jeremy Huddleston Sequoia wrote:
>>>> On Feb 22, 2021, at 14:38, Duncan Murdoch <murdoch.duncan at gmail.com 
>>>> <mailto:murdoch.duncan at gmail.com> <mailto:murdoch.duncan at gmail.com 
>>>> <mailto:murdoch.duncan at gmail.com>>> wrote:
>>>>
>>>> I've made a little bit of progress.
>>>>
>>>> The message "error: xp_attach_gl_context returned: 2" comes from the 
>>>> Mesa routine surface_make_current, which calls xp_attach_gl_context. 
>>>>  I haven't found where xp_attach_gl_context is defined.
>>> xp_attach_gl_context is in libXplugin (check Xplugin.h in the SDK).
>>> 2 is XP_BadValue, which is returned if cgl_ctx is NULL... so I'd 
>>> suggest looking into why mesa is calling xp_attach_gl_context with a 
>>> NULL context.
>>
>> Thanks, that's helpful.  The context is not NULL, so I need to think 
>> of other ways it could be "bad".
> 
> Ok, well xp_attach_gl_context is just a wrapper around CGLSetSurface(), 
> which is an internal function to do exactly what we're trying to do 
> here.  If it returns any error, xp_attach_gl_context returns bad value.
> 
> Are you able to capture this in the debugger and figure out what the 
> return value from CGLSetSurface() is?  That will tell us what the 
> underlying CGLError is, which might help shed some light on this.

I believe it's returning  0x0000000000002715 when there's an error. 
That's 10005, kCGLBadDrawable.  So now I need to find out what happened 
to the drawable.

This feels like progress!  Thanks again.

Duncan
> 
>> Here's what I see with LIBGL_DIAGNOSTIC=1.  For a successful open,
>>
>> > rgl.open()
>> function is no-op
>> Debug     ../src/glx/apple/apple_glx_context.c:205 
>> apple_glx_create_context(4295810496): apple_glx_create_context: ac 
>> 0x100a10a00 ac->context_obj 0x107cdce00
>> 2021-02-23 08:23:00.041711-0500 R[45754:1283995] 
>> apple_glx_create_context: ac 0x100a10a00 ac->context_obj 0x107cdce00
>> Debug     ../src/glx/apple/apple_glx_drawable.c:342 
>> apple_glx_drawable_create(4295810496): apple_glx_drawable_create: new 
>> drawable 0x107ce0e00
>> 2021-02-23 08:23:00.042235-0500 R[45754:1283995] 
>> apple_glx_drawable_create: new drawable 0x107ce0e00
>> Debug     ../src/glx/apple/apple_glx_surface.c:154 
>> create_surface(4295810496): create_surface: created a surface for 
>> drawable 0x600066 with uid 621
>> 2021-02-23 08:23:00.044773-0500 R[45754:1283995] create_surface: 
>> created a surface for drawable 0x600066 with uid 621
>> Debug     ../src/glx/apple/apple_glx_surface.c:69 
>> surface_make_current(4295810496): surface_make_current: 
>> ac->context_obj 0x107cdce00 s->surface_id 9
>> 2021-02-23 08:23:00.044839-0500 R[45754:1283995] surface_make_current: 
>> ac->context_obj 0x107cdce00 s->surface_id 9
>> Debug     ../src/glx/apple/apple_glx_surface.c:89 
>> surface_make_current(4295810496): surface_make_current: drawable 0x600066
>> 2021-02-23 08:23:00.045680-0500 R[45754:1283995] surface_make_current: 
>> drawable 0x600066
>> ... (more lines deleted)
>>
>> After I run quartz(), I see this:
>>
>> > rgl.open()
>> Debug     ../src/glx/apple/apple_glx_context.c:205 
>> apple_glx_create_context(4295810496): apple_glx_create_context: ac 
>> 0x10262bb00 ac->context_obj 0x1058c4800
>> 2021-02-23 08:23:35.666675-0500 R[45754:1283995] 
>> apple_glx_create_context: ac 0x10262bb00 ac->context_obj 0x1058c4800
>> Debug     ../src/glx/apple/apple_glx_drawable.c:342 
>> apple_glx_drawable_create(4295810496): apple_glx_drawable_create: new 
>> drawable 0x107648000
>> 2021-02-23 08:23:35.667040-0500 R[45754:1283995] 
>> apple_glx_drawable_create: new drawable 0x107648000
>> Debug     ../src/glx/apple/apple_glx_surface.c:154 
>> create_surface(4295810496): create_surface: created a surface for 
>> drawable 0x6000c9 with uid 629
>> 2021-02-23 08:23:35.669119-0500 R[45754:1283995] create_surface: 
>> created a surface for drawable 0x6000c9 with uid 629
>> Debug     ../src/glx/apple/apple_glx_surface.c:69 
>> surface_make_current(4295810496): surface_make_current: 
>> ac->context_obj 0x1058c4800 s->surface_id 13
>> 2021-02-23 08:23:35.669195-0500 R[45754:1283995] surface_make_current: 
>> ac->context_obj 0x1058c4800 s->surface_id 13
>> error: xp_attach_gl_context returned: 2
>> Debug     ../src/glx/applegl_glx.c:60 
>> applegl_bind_context(4295810496): applegl_bind_context: error YES
>> 2021-02-23 08:23:35.669834-0500 R[45754:1283995] applegl_bind_context: 
>> error YES
>>
>> and then I get my own messages from the failure of glXMakeCurrent(). 
>>  As far as I can see, everything appears fine until the call to 
>> xp_attach_gl_context.
>>
>>
>> Everything looks very similar up to the failure of 
>> xp_attach_gl_context.  Any idea I why the value returned a few lines 
>> earlier from apple_glx_create_context() should be a bad value?
>>
>> Duncan Murdoch
>>
>>
> 



More information about the Xquartz-dev mailing list