[RFC] GLX dispatch rewrite

Adam Jackson ajax at redhat.com
Tue Oct 22 20:27:08 CEST 2013


I'd send this as a patch, but it's like 2M, so I figure that's rude.
Instead see here:

http://cgit.freedesktop.org/~ajax/xserver/commit/?h=glx-direct-dispatch&id=918c1e76b1ee837db36283dc8fe513fc588c1e4d

Basically this rips out the fork of glapi from xserver, and converts the
glx code to call into libGL directly.  What it _doesn't_ include is
converting the loaders to EGL.  I still plan to do that at some stage,
but it turns out they're separable tasks.  I've verified that indirect
contexts with Xvfb pass exactly as many piglit tests [1] before and
after this patch (plus my previous memory-leak-fix series, since
otherwise Xvfb gets oomkilled).  And direct clients aren't affected,
since xserver doesn't create a proxy context for those, just a tracking
stub.

I've not yet verified this series against a glamor-using DDX.  I
anticipate that both glamor and xserver will need some changes to
context handling to make it work quite right.  My current experiment
with this involves importing glamor into xserver directly, which I think
is a winning move in the long term:

http://cgit.freedesktop.org/~ajax/xserver/log/?h=glamor-import

Had to hack git-subtree to do it, and I'm not sure I like the result,
git-log doesn't seem to be able to follow history for the resulting
glamor/ dir.

I've also not verified this against DRI1 at all - the DRI1-specific
parts of the rewrite are just to get it to build - but as I noted in a
previous patch I don't think DRI1 AIGLX can work at all in this model,
and I don't think we should care.

[1] - Okay, quick.tests, minus the glsl stuff since it's all compiler
tests, minus fp-indirections because it's brutal on llvmpipe, minus
longprim because it crashes (both before and after).

- ajax



More information about the xorg-devel mailing list