In trying to figure out why the clutter FBO tests simply fell over in
indirect contexts, I got to discover exactly how disgusting this code is.
The glapi code appears to have been cargo-culted in from Mesa, but is
over-general for our purposes.  In particular, glapi goes through some
contortions to support the corner case semantics of glXGetProcAddress,
which is a thing that simply can not happen in xserver, and contains
much more threading support than can happen in xserver.

This patchset attempts to simplify some of that.  I've lightly tested it,
in the sense that glxinfo and glxgears still work in indirect contexts, but
I've not tried anything as robust as piglit yet.  There's more to come, in
the form of fixing and simplifying _glapi_add_dispatch for the xserver
environment, but that's proving a little tricker than I was hoping.

Nonetheless, the before-and-after is very pretty already:

   text    data     bss     dec     hex filename
1833530   69920   49664 1953114  1dcd5a Xvfb-before
1741772   62928   49640 1854340  1c4b84 Xvfb-after

 b/glx/Makefile.am          |    2 
 b/glx/glapi.c              |  417 --
 b/glx/glapi.h              |   28 
 b/glx/glthread.c           |  162 -
 b/glx/glthread.h           |   69 
 b/hw/xquartz/GL/indirect.c |    9 
 glx/glapitemp.h            | 6655 ---------------------------------------------
 7 files changed, 19 insertions(+), 7323 deletions(-)

- ajax

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to