I'm currently trying to figure out why certain apps that use gtkglext[1]
crash on (some random subset) of windows closes, but only under my
Radeon 9000 pro/hardware acceleration. The error itself is an X protocol
error. I'm not GLX guy, so here are the relevant snippets:

1)
The gtkglext guy says:
It seems that r200 driver's glXDestroyContext() needs valid Drawable.
In r200GetLock(), DRI_VALIDATE_DRAWABLE_INFO() is called to get valid
clip rect of target Drawable. It fails if Drawable is already
destroyed. (for details, see xc/lib/GL/mesa/src/drv/r200 sources in
XFree86)

[...regarding a test program] If it fails, r200 driver requires valid
Drawable on
glXDestroyContext().

According to glXDestroyContext() man page, no such requirement is
described, so I think it is r200 driver's fault....

2)

At least, your gdb backtrace says that the X error occurs in
r200GetLock() call on destroying rendering context.

  r200DestroyContext() [xc/lib/GL/mesa/src/drv/r200/r200_context.c]
    r200FlushCmdBuf() [xc/lib/GL/mesa/src/drv/r200/r200_ioctl.c]
      LOCK_HARDWARE() [xc/lib/GL/mesa/src/drv/r200/r200_lock.h]
      r200GetLock() [xc/lib/GL/mesa/src/drv/r200/r200_lock.c]
        DRI_VALIDATE_DRAWABLE_INFO() [xc/lib/GL/dri/dri_util.h]
        DRI_VALIDATE_DRAWABLE_INFO_ONCE()
        __driUtilUpdateDrawableInfo() [xc/lib/GL/dri/dri_util.c]
          XF86DRIGetDrawableInfo() [xc/lib/GL/dri/XF86dri.c]

          == X server ==> ProcXF86DRIGetDrawableInfo()
[xc/programs/Xserver/GL/dri/xf86dri.c]
                            BadValue is raised on
                            SecurityLookupDrawable()
[xc/programs/Xserver/dix/dixutils.c] 
                            or
                            DRIGetDrawableInfo()
[xc/programs/Xserver/GL/dri/dri.c]

I think the cause is that r200GetLock() attempts to validate the clip
rects (DRI_VALIDATE_DRAWABLE_INFO()) against the Drawable which is
already destroyed.


[1] http://gtkglext.sourceforge.net/

-- 
// [EMAIL PROTECTED] [EMAIL PROTECTED] scopira.org //



-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
at the same time. Free trial click here:http://www.vmware.com/wl/offer/358/0
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to