Proprosed break in libGL / DRI driver ABI

Roland Mainz roland.mainz at nrubsig.org
Tue Apr 5 12:14:42 PDT 2005


Ian Romanick wrote:
> 
> For X.org 6.9 / 7.0 I would like to break the existing libGL / DRI
> driver interface.  There is a *LOT* of crap hanging around in both libGL
> and in the DRI drivers that exists *only* to maintain backwards
> compatability with older versions of the interface.  Since it's crap, I
> would very much like to flush it.
> 
> I'd like to cut this stuff out for 7.0 for several main reasons:
> 
> - A major release is a logical time to make breaks like this.
> 
> - Bit rot.  Sure, we /assume/ libGL and the DRI drivers still actually
> work with older versions, but how often does it actually get tested?
> 
> - Code asthetics.  Because of the backwards compatability mechanisms
> that are in place, especially in libGL, to code can be a bit hard to
> follow.  Removing that code would, in a WAG estimate, eliminate at least
> a couple hundred lines of code.  It would also eliminate a number of
> '#ifdef DRI_NEW_INTERFACE_ONLY' blocks.
> 
> What I'm proposing goes a bit beyond '-DDRI_NEW_INTERFACE_ONLY=1", but
> that is a start.  In include/GL/internal/dri_interface.h (in the Mesa
> tree) there are number of methods that get converted to 'void *' if
> DRI_NEW_INTERFACE_ONLY is defined.  I propose that we completely remove
> them from the structures and rename some of the remaining methods.  For
> example, __DRIcontextRec::bindContext and __DRIcontextRec::bindContext2
> would be removed, and __DRIcontextRec::bindContext3 would be renamed to
> __DRIcontextRec::bindContext.
> 
> Additionally, there are a few libGL-private structures in
> src/glx/x11/glxclient.h that, due to binary compatability issues with
> older versions of the interface, can't be change.  Eliminating support
> for those older interfaces would allow some significant cleaning in
> those structures.  Basically, all of the stuff in glxclient.h with
> DEPRECATED in the name would be removed.  Other, less important, changes
> could also be made to __GLXcontextRec.

Another item would be to look into what's required to support visuals
beyond 24bit RGB (like 30bit TrueColor visuals) ... someone on IRC
(AFAIK ajax (if I don't mix-up the nicks again :)) said that this may
require an ABI change, too...
When I look at xc/extras/Mesa/src/mesa/main/config.h I see more items on
my wishlist: Would it be possible to increase |MAX_WIDTH| and
|MAX_HEIGHT| (and the matching texture limits of the software
rasterizer) to 8192 to support larger displays (DMX, Xinerama and Xprint
come in mind) ?

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 7950090
 (;O/ \/ \O;)


More information about the xorg-arch mailing list