We're over the extension event limit -- what are we going to do about it?
Aaron Plattner
aplattner at nvidia.com
Tue Mar 30 10:59:08 PDT 2010
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.
More information about the xorg-devel
mailing list