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