On Mon, Mar 29, 2010 at 08:23:57AM -0700, Adam Jackson wrote: > On Sun, 2010-03-28 at 17:07 -0700, Aaron Plattner wrote: > > > 1. Move the new DRI2 extension events to the Generic Event Extension. > > > > This is the cleanest solution because DRI2 is the extension that changed > > to put it over the limit. Also, the code is brand new and has not been > > in an official release yet, so hopefully it's being used in the fewest > > places. > > Not a bad idea in any event. (rimshot) > > > 2. Drop some other extension with events that nobody uses. > > > > I'm sure we'll argue endlessly about which extension to remove. > > Well, on a pre-DRI2 machine: > > % xdpyinfo -queryExtensions | grep base.event | sed -e 's/(.*event:/@/' -e > 's/[,)].*//' | sort -n -k2 -t @ > MIT-SCREEN-SAVER @ 64 > XFree86-DGA @ 65 > XVideo @ 72 > Generic Event Extension @ 74
On IRC, Julien pointed out that the Generic Event Extension extension registers one extension event, but then uses the core GenericEvent instead of X_GenericEvent. On our customer's failing configuration, it was only over the limit by one extension event, so just fixing this would be enough to solve the problem. > SHAPE @ 75 > MIT-SHM @ 76 > XInputExtension @ 77 > SYNC @ 94 > XKEYBOARD @ 96 > XFIXES @ 97 > RANDR @ 99 > DAMAGE @ 101 > GLX @ 102 > SGI-GLX @ 102 > > Ignoring GLX (which wants to be GLX2 someday anyway), XI and DGA are the > greedy ones. DGA's event encoding is shockingly stupid. It just > translates events up from the core space into DGA space. But: > > /* Event names. Used in "type" field in XEvent structures. Not to be > confused with event masks above. They start from 2 because 0 and 1 > are reserved in the protocol for errors and replies. */ > > #define KeyPress 2 > #define KeyRelease 3 > #define ButtonPress 4 > #define ButtonRelease 5 > #define MotionNotify 6 > > So it requests 7 events, and then 0 and 1 never get used. Headdesk. Fun times. _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
