On 04/06/2013 11:36 AM, Stefan Brüns wrote:
Am Freitag, 22. März 2013, 11:46:52 schrieben Sie:

To call glFoo, the xserver (or libGL) does

      (dispatch_table[offset_of_glFoo])(...);

To set the pointer for the glFoo function, the driver does

      dispatch_table[remap_table[remap_offset_of_glFoo]] = driver_glFoo;

Thanks for the clarification, after knowing what should happen finding the
root cause was straigthforward:

The population of dispatch_table is done using _glapi_add_dispatch(...). This
function is defined by the XServer in glx/glapi.c, and it is defined in Mesas
mapi/mapi/mapi_glapi.c

Now, why is libGL and thus libglapi linked to the X server - the Intel driver
optionally uses glamor, which uses libGL!

Recompiling the intel driver whithout glamor resolves this problem.

Right... I don't think having two different loaders (libGL and the GLX extension) active in on process could ever work our dispatch architecture. Nothing in the X server should *ever* link with libGL... it's like linking with two different libc implementations... what could possibly go wrong?

Regards,

Stefan

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to