Thanks, this is very helpful.
Brian Paul wrote:
> Laszlo Kovacs wrote:
>> Hi All,
>> I am new to Mesa so please bear with me ...
>> What is the GLX API version supported by Mesa? I am looking at Mesa
>> I can see from the spec that the only new API call introduced in 1.4
>> (the latest) is glxGetProcAddress(). There are references in the
>> Release Notes back to year 2000 to this API call. Does that mean the
>> 1.4 version has been supported for a long time?
> It depends, see below.
>> My confusion is because when I run glxinfo I see a number of versions
>> displayed and I don't know what they mean.
>> For example on a RHEL4 server I see:
>> server glx version: 1.2
>> client glx version: 1.4
>> OpenGL version string: 1.2 (1.5 Mesa 6.2.1)
> There's both a server-side and client-side component to GLX. In
> general, the version of GLX supported then is the minimum of those two
> versions. But some GLX extensions are client-side only (like
> GLX_ARB_get_proc_address are client-side only).
How can I find out what version of server side and client side GLX is
supported in 6.5.2 and newer versions of Mesa? Probably if I had it
installed glxinfo would tell me, but I don't have it installed anywhere
at the moment. I was hoping to find it written down somewhere.
>> Also I am trying to get my head around the way Mesa works in a
>> software rendering scenario. I am looking at this for a thin client so
>> DRI does not make sense there. Also speed is not an issue, we just
>> want users that have software rendering available if they happen to
>> use an OpenGL application.
>> I understand from the FAQ that when software rendering is used there
>> is no server side component, there is no GLX protocol used and libGL
>> implements the OpenGL and GLX API on the client side (presumably with
>> X11 calls).
> It depends. There's two ways in which software rendering can work:
> 1. "Stand-alone" Mesa using the Xlib driver acts as an OpenGL-to-Xlib
> translator. There's no server-side GLX component and no GLX protocol.
> 'make linux' will build this version.
> 2. "Software GLX" means you have a full GLX installation, but the
> server-side rendering is done in software (no hw acceleration).
> 'make linux-dri' will build this version. Plus you need to build GLX
> support into your X server.
Would there be any obvious reason why I would want to consider one over
the other? I am trying to use this on Solaris, not Linux.
How would they compare as far as performance goes?
Regarding building GLX support into the X server, the X server is Xorg,
shouldn't that have everything needed?
>> Does this mean that in the Xorg code there nothing needs to be done to
>> allow applications to do software rendering over Mesa?
> In case (1) correct, in case (2) no.
>> That the application uses OpenGL and GLX API calls linking against
>> libGL and libGL implements the rendering with ordinary X11 calls?
> In case (1).
>> That with an ordinary Xorg server without any extensions or anything
>> else specially activated any application can do software OpenGL
>> software rendering linking against libGL?
> Yes, (1) again.