The X server implementation of GLX checks the drawables event mask before sending GLX_BufferSwapComplete events, but when direct rendering, we convert DRI2_BufferSwapComplete events into the GLX events, and the DRI2 events are sent unconditionally. So application always receives events even when it hasn't asked for them. This certainly violates the expectations of the extension spec and could confuse applications. Probably DRI2EventToWire should silently consume the events without delivering them (this would mean saving the event mask client side.)
Created attachment 35414 [details] [review] track event mask in client code Totally untested (not even compiled) patch to track the event mask on the client side and ignore DRI2 events we're not looking for.
Created attachment 37042 [details] [review] track event mask in client code, v2 This affects every application using freeglut, causing them to spew messages of the form freeglut (./gears): Unknown X event type: 104 to standard error. The result after applying the patch didn't compile, so I fixed it up a bit and changed 'return True' to 'return False' so that it actually works. With the new patch, the freeglut messages are gone.
Nick, can you post the patch to mesa-dev@lists.freedesktop.org? Once we get some review I can commit it.
(In reply to comment #3) > Nick, can you post the patch to mesa-dev@lists.freedesktop.org? Once we get > some review I can commit it. Patch is sent and should reach the list when a moderator gets around to approving it.
Commit: f8d81c31cee30821da3aab331a57f484f6a07a5d URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f8d81c31cee30821da3aab331a57f484f6a07a5d Author: Nick Bowler <nbowler@draconx.ca> Date: Wed Jul 14 12:01:49 2010 -0400 dri2: Track event mask in client code.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.