DISPATCH ERROR! with latest i965 DRI

Ian Romanick idr at us.ibm.com
Mon Oct 16 10:41:06 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrew J. Barr wrote:
> Hi, again, I built Mesa CVS to test the i965 DRI updates and I am getting the 
> following errors when a GL program is invoked:
> 
> andrew at conroe:~$ glxinfo
> name of display: :0.0
> DISPATCH ERROR! _glapi_add_dispatch failed to add glAreTexturesResident!
> DISPATCH ERROR! _glapi_add_dispatch failed to add glGenTextures!
> DISPATCH ERROR! _glapi_add_dispatch failed to add glIsTexture!

Short answer:

Using a new libGL with an old driver should work, but using a new driver
with an old libGL won't.

Long answer:

Previously a number of functions were functionally identical but had
different dispatch offsets.  This was required because the functions had
different GLX protocol.  I recently changed Mesa to allow these
functions to share dispatch offsets (see bug #4681 and
http://dri.freedesktop.org/wiki/PartiallyAliasedFunctions).

libGL has offsets assigned at compilation for all functions for which it
has GLX protocol.  Since these functions had different GLX protocol,
they had different offsets.  Drivers built against the new libGL will
try to request the same offset for both functions.  It's impossible for
an older libGL to satisfy that request, so it returns an error.

There is one thing that confuses me about this.  Why isn't a similar
error generated for the other functions affected by the partial alias
changes?

It seems I've inadvertently created a binary compatibility issue.  The
question now becomes how to resolve it.  Should we revert the changes or
bump the interface version?  I'm personally leaning towards the later.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFM8QyX1gOwKyEAw8RAoXCAJ9Svtl7ZCMtw1xb70Eke+Ndf9PcEQCdEKmZ
o4DxtTlyhxSkDyDxNVB1wxQ=
=Np0X
-----END PGP SIGNATURE-----



More information about the xorg mailing list