<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - GLX_INTEL_swap_event crashes driver when swapping window buffers"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=54372#c21">Comment # 21</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - GLX_INTEL_swap_event crashes driver when swapping window buffers"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">bug 54372</a>
              from <span class="vcard"><a class="email" href="mailto:danmanj@gmail.com" title="danmanj@gmail.com">danmanj@gmail.com</a>
</span></b>
        <pre>*SIGH*

Well this bug has led to a new bug. I'm just going to post here since I have
your attention :)

I changed my app to use glxwindows to avoid the crash, and it turns out that
this breaks glXUseXFont()

:'(


In detail:

DRI_glXUseXFont() creates a Pixmap and X11 graphics context relative to the
current glx context (see the line 
win = CC->currentDrawable;
)

But now that I'm using glxwindows the currentDrawable isn't actually an XID for
a Window, so the plain-old X11 subsystem refuses, and all subsequent operations
fail. I get a stream of errors like:

[17098]    7.810910: *** ERROR: xid=0x400010 req=53/0 err=9: X_CreatePixmap:
BadDrawable (invalid Pixmap or Window parameter)
[17098]    7.810919: *** ERROR: xid=0x4002cf req=55/0 err=9: X_CreateGC:
BadDrawable (invalid Pixmap or Window parameter)
[17098]    7.810923: *** ERROR: xid=0x4002cf req=54/0 err=4: X_FreePixmap:
BadPixmap (invalid Pixmap parameter)
[17098]    7.810926: *** ERROR: xid=0x400010 req=53/0 err=9: X_CreatePixmap:
BadDrawable (invalid Pixmap or Window parameter)
[17098]    7.810930: *** ERROR: xid=0x4002d1 req=70/0 err=9:
X_PolyFillRectangle: BadDrawable (invalid Pixmap or Window parameter)
[17098]    7.810934: *** ERROR: xid=0x4002d1 req=56/0 err=13: X_ChangeGC: BadGC
(invalid GC parameter)

(1000 or so more lines of errors deleted)

So now I can either have text or I can have swap events, but not both!

===

To follow up on the whole "swap events reported but not actually generated"
complaint: It looks like this was fixed in
<a href="http://lists.x.org/archives/xorg-devel/2013-February/035449.html">http://lists.x.org/archives/xorg-devel/2013-February/035449.html</a> . I've added
code to my app to detect this and work around it by falling back to not using
swap events.

===

To follow up on the spec: the line of text "The mask field indicates which of
the buffers in the drawable were swapped." Is referring to what must have been
a deleted field. Probably want to remove this.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>