DRI backwards compatibility problem from X.Org 6.8.0 onwards

Ian Romanick idr at us.ibm.com
Mon Dec 13 11:28:45 PST 2004


Alan Hourihane wrote:

> There's a backwards compatibility breakage with X.Org 6.8.0 and beyond
> because of revision 1.3 of the file xc/include/glxint.h. So, those
> that provide binary drivers that were compiled against X.Org 6.7.x or
> XFree86 4.4.0 or earlier will break as well.

So, the real answer to this problem is that the interface between 
libglx.a, libGLcore.a, and the DDX is horribly broken.  With respect to 
3D, there is no clean division between the three.  Each directly 
allocates, rearranges, and modifies various datastructures.

For the current Xorg release (6.8.x), I'm content to leave things as 
they were in 6.8.0.

For the next major release (6.9.0) I believe that the entire existing 
interface on the server-side needs to be pitched in the garbage. 
Ideally, we want the libglx / libGLcore interface to be identical to the 
libGL / *_dri.so interface.  On the client-side libGL *does* provide and 
function to allocate and initialize (with default values) 
__GLcontextModesRec structures.

> 
> The problem stems from these additional fields in the GLXvisualConfigRec
> which actually are not needed. 
> 
>     int multiSampleSize;
>     int nMultiSampleBuffers;
>     int visualSelectGroup;
> 
> These fields are already in the new GLXFBConfigRec for the later FB visual 
> selection code.

Hmm...this is bad.  Anything that makes any chages to GLXvisualConfigRec 
will break the hell out of a lot of things.  That's why the "real" 
selection code in libglx abandoned that structure in favor of 
__GLcontextModesRec.


More information about the release-wranglers mailing list