Re: protocol enhancements

Keith Packard <[email protected]>
Newsgroups gmane.comp.xfree86.forum
Message-ID <E18xVig-0000Es-00@localhost>
Around 10 o'clock on Mar 24, David Dawes wrote:

> Xinerama with enough high-res screens can come close today (I can never
> remember if the limit is 32767 or 65535).  I'm sure that there'll be other
> issues exposed as we start working towards this.  I'd like to see at a
> minimum that the X server internals, and any proposed re-writes thereof in
> the context of 5.0, are prepared for this and for deeper and non-integer
> pixel types.

I've been thinking of several schemes for supporting larger screens.  The 
problem is how to get existing applications to work with root windows that 
are larger than 32767 in size.  I can imagine a segmented architecture 
with base/offset pairs so that the window manager can change the base 
value for an entire client while the existing 16-bit value is treated as 
an offset.  That might make it possible for applications to keep their 
menus and windows together.  I'm not very comfortable with this scheme 
though, perhaps others will have better suggestions.

Support for deeper/non-integer pixel formats are easy at the protocol 
level as we can easily translate between the two pixel formats.  I 
envision 32bpp core visuals mapped to extended visuals; core requests 
would always deal with pixels in 32bpp form while extended requests can 
handle the new format.  Render already has support for 64 bit integer 
pixels, but it will need extensions to handle non-integer values.

> I also think that bumping the protocol minor revision should be explored as
> a backward-compatible mechanism for enhancing the core protocol.

A minor revision would be necessary if we were to change any of the 
behaviour of the core requests.  As we would have to provide for cross 
compatibility in both directions, it will probably be safer to enhance
the protocol through the extension mechanism.  

The reason is that the protocol revision is global, so every part of the
application sharing the same X connection would have to support the new
revision while extensions permit existing code to continue working
unchanged while new code takes advantage of new functionality.

There may be compelling reasons to bump the revision number, but we should 
be very careful in doing so.

-keith
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.