X11 server that supports OpenGL 1.5 or higher

Adam Jackson ajax at nwnk.net
Wed Jun 3 16:56:10 UTC 2020


On Tue, 2020-06-02 at 13:10 -0400, Nathan Kidd wrote:

> Are you sure you don't want VirtualGL instead?
> 
> There is no official GLX protocol for OpenGL 1.5+. NVIDIA implemented
> unofficial protocol with their AllowUnofficialGLXProtocol /
> __GL_ALLOW_UNOFFICIAL_PROTOCOL settings.  I think it allows up to the
> OpenGL 2.x range but I haven't looked in detail.

This isn't quite accurate. GLX is in fact defined through OpenGL 3.0:

https://github.com/KhronosGroup/OpenGL-Registry/blob/master/xml/glxproto.reserved.txt#L325

Don't feel bad about not knowing that, the spec for everything past 1.5
was lost in a Khronos-internal svn repo until a few years ago. (To be
clear, thank you Khronos for letting me dig that out of the vault and
add it to the public registry, and for otherwise being extremely
excellent about GLX feedback.) But, neither Mesa's GLX client code nor
xserver's GLX server code implements anything past 1.5, partly because
it's all tied up with codegen scripts nobody understands or likes.

If I recall correctly NVIDIA's unofficial GLX extensions will get you
GL 3.3, and probably we could just go ahead and standardize them. And
for that matter if we want to define the protocol through to 4.6 we're
perfectly free to do so, the wire encoding is mostly a mechanical
transformation of the GL API so it's not exactly rocket surgery.

If anyone is interested in working on any of that, please get in touch,
I'll be happy to point you in the right direction.

To the OP's question: if all you're looking for is GL feature set and
semi-reasonable performance, you may be able to use Mesa's swr or
llvmpipe drivers instead, which will give you GL 3.3 independently of
the GLX protocol your server happens to implement.

- ajax



More information about the xorg mailing list