As far as I can tell from looking at the open-sourced version of GLX
from SGI, the intersection of client and server extension strings
happens in the *server*, rather than the client.  That's why Michael
and I could find it earlier today.

In case anyone's curious, the relevant code appears to be in

        glx/xc/programs/Xserver/GL/single2.c

The function that actually does the intersection is __glXcombine_strings().
It's invoked from __glXDisp_GetString().

The upshot of all this is that any application that queries the
extensions string for a remote server will see only the extensions
that are supported by both the server and by the local GLX encoder. 
So we (the Linux OpenGL base group) don't have to worry about the
possibility that a well-behaved client will invoke an OpenGL extension
function that its GLX encoder doesn't support.

Allen

Reply via email to