[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