Since the same-dispatch-offset-different-glx-opcodes functions are
defined in GLX, glXGetProcAddress should be a better place to handle
them specially than _glapi_get_proc_address is.  With that change, I
am quite happy with the current status of shared glapi

  http://cgit.freedesktop.org/~olv/mesa/log/?h=shared-glapi-2

>From a user's point of view, this branch brings two changes
(implemented by the last two commits respectively).  First, OpenGL ES
1.1 and 2.0 interop is fixed.  There is now libglapi that is installed
and shared by libGLESv1_CM and libGLESv2.  The new libglapi has a
stable API/ABI as described by glapi.h.  The stability is to allow DRI
drivers to be loaded as before.  No external user of libglapi is
expected.

Then there is a new configure option, --enable-shared-glapi, which
says that libGL should use the shared libglapi instead of defining its
own copy.  When enabled, it fixes OpenGL and OpenGL ES interop.  This
option is by default disabled as it is not needed for systems without
OpenGL ES.  When disabled, libGL is exactly the same as before.

>From a packager's point of view, libGLESv1_CM and libGLESv2 should be
considered wrappers of libglapi.  They must be created from the same
source tree as libglapi is.  The reason for this is that the dispatch
offsets are re-assigned whenever GLAPI XMLs are changed.  Similarly,
when --enable-shared-glapi is specified, libGL is also considered a
wrapper of libglapi.

I would hope that --enable-shared-glapi is enabled everywhere and is
eventually removed.  But before that happens, it may be desirable to
have libGL export no more than OpenGL 1.2 plus GL_ARB_multitexture
functions.  These are the functions defined by OpenGL ABI for Linux
and that have fixed dispatch offsets.  With that, libGL and libglapi
need not have to be from the same source tree.

-- 
o...@lunarg.com
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to