server, client and general GLX extensions and version numbers

Brian Paul brian.paul at tungstengraphics.com
Mon Dec 4 09:15:46 PST 2006


Ioannis Nousias wrote:
> Brian Paul wrote:
> 
>> Ioannis Nousias wrote:
>>
>>> Running glxinfo, there are 3 sections for GLX extensions. The 
>>> "server", "client" and another one (general?). Each of them has its 
>>> own version number and and each of them has different number and 
>>> mixture of extensions. Now, what I'd like to know is what do each of 
>>> those sections represent and which part of Xorg, Mesa or whatever 
>>> else provides them.
>>
>>
>> Most GLX extensions require both client and server-side support, but 
>> some are client-side only (like GLX_ARB_get_proc_address) and some are 
>> server-side only (can't think of any off-hand).
>>
>>
>>
>>> I have 1.2 for the server, 1.4 for the client and 1.2 for the third one
>>>
>>> the reason I'm asking this is because I have a problem with the 
>>> GLX_EXT_texture_from_pixmap. It appears in the "server" and "client" 
>>> section, but not in the general one, causing compiz to fail.
>>
>>
>> Not sure about the GL_EXT_texture_from_pixmap stuff. Ian was the last 
>> person to work on that.
>>
>>
>>> the other reason I'm interested to know are the two GLX_SGIX_fbconfig 
>>> and GLX_SGIX_pbuffer extensions. In my case these appear in the 
>>> "client" section (which is 1.4 version), but the server and the third 
>>> advertise only the GLX_SGIX_fbconfig.
>>>
>>>
>>> anyone that could shed some light here?
>>
>>
>> We still don't have server-side pbuffer support.
>>
>> -Brian
> 
> ok, I see.
> 
> I'm still confused though to what each of those corresponds to. Isn't 
> the server side referring to Xorg's libglx.so? That resides in Mesa's 
> source code, right? So if one would want to work on the server side for 
> those GLX extensions, would he/she be looking at Mesa?

Not exactly.  There's a server-side GLX module that decodes incoming 
GLX commands and dispatches them to the rendering core, which is Mesa 
(or NVIDIA's driver if using NVIDIA hardware, for example).

In some cases, the GLX extension might do something that has no direct 
connection to the rendering core.

The libglx.so code is not part of Mesa.


> what's the client-side in this case?  The drivers? 

Client-side is the libGL.so library which takes GL commands and 
converts them to GLX commands, or dispatches them to the local 
direct-rendering driver.


 > And what's that third
 > bit? Is it the "effective" support you get depending on the server
 > and client features ?

Most GLX extensions have both client and server-side requirements and 
only are available for use when both ends support the extension.

-Brian



More information about the xorg mailing list