Title: RE: [oglbase-discuss] Intersecting client and server GL extensions


>
> 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().
>

Yes, this is what happens when you call glXQueryExtensionsString and glGetString. This behavior is actually described in the GLX protocol doc (under GLXClientInfo). Note that the client may then add any extension strings that it can support solely on the client side (and the server can add any extensions that it can support solely on the server side).

> 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.
>

Right .. for GL extensions. For GLX extensions, an app can also call glXGetClientString to get the list of extensions the client supports and glXQueryServerString to get the list of extensions the server supports.

 
> Allen
>

Reply via email to