Xorg glx module: GLVND, EGL, or ... ?

Emil Velikov emil.l.velikov at gmail.com
Thu Dec 15 16:08:48 UTC 2016


On 15 December 2016 at 08:15, Michel Dänzer <michel at daenzer.net> wrote:
>
> Hi Adam, Andy, Kyle,
>
>
> even with GLVND in place and used by Mesa and other GL implementations,
> one remaining issue preventing peaceful coexistence of Mesa based and
> other GLX implementations is that other GLX implementations tend to ship
> their own, mutually incompatible versions of the Xorg glx module. I'm
> not sure about all the reasons for this, but an important one is that
> the glx module in the xserver tree has been using the DRI driver
> interface directly, which can only work with Mesa.
>
The "xfree86: Extend OutputClass config sections" series from Hans just landed.
With it one can correctly attribute/select the correct libglx.so,
which should tackle the issue ;-)

> Adam, IIRC you previously mentioned the possibility of making the
> xserver glx module use EGL instead of the DRI driver interface. Another
> possibility might be to make it use GLVND. Is my understanding correct
> that those are basically two mutually exclusive approaches for
> addressing this issue? Maybe there's even more options I'm not aware of?
>
On the topic of using reimplementing DRI modules in terms of EGL I'm
slightly worried since this means a) new code (bugs, testing, etc.)
which very few people know and b) mixing APIs might end up nasty (see
below) not to mention the unnecessary complexity/overhead that we'll
get since we'll be going through GLVND every time.

Example:
Would happen if we one calls glXMakeCurrent which internally goes down
to eglMakeCurrent ? Are we going to clash since (iirc) one is not
allowed to do both on the same GL ctx ?

Some food for thought... considering I've not lost it and the above
sounds about right :-)
Emil


More information about the xorg-devel mailing list