DRI backwards compatibility problem from X.Org 6.8.0 onwards

Alan Hourihane alanh at fairlite.demon.co.uk
Fri Dec 10 11:04:51 PST 2004


Folks,

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.

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.

What exactly happens is that only the first visual is actually exported
with a matching GLX visual attribute. The DDX driver uses GLXvisualConfigRec
to allocate a list of visuals and passes them off to GLX to register them.
Because the size of the structure changed, older GLX's barf on registering
the visuals apart from the first.

Now, I guess I'm a little unsure of what to do about this now that 6.8.0
broke it. But it's definately a problem for those IHV's or binary folks
that provide their own drivers without having to upgrade a plethora of
other modules too.

Ideas ?

Maybe for the future, we should have a function that the driver can call
to allocate this block of GLX visuals, that's handled in libglx.a. That
way only a pointer is handed back to the DDX driver to fill in what it
actually knows about. But versioning bumping required here and I'm not
sure it's worth it given the new FB selection code anyway.

Alan.



More information about the release-wranglers mailing list