[Mesa-dev] [RFC] Solution to libGL.so and libGLES*.so mess

Chia-I Wu olvaffe at gmail.com
Fri Dec 31 01:38:15 PST 2010


On Wed, Dec 29, 2010 at 3:50 AM, Chia-I Wu <olvaffe at gmail.com> wrote:
> 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
I've created a diagram showing the differences between GLX and EGL in
terms of libraries, and showing where libglapi is used

  http://people.freedesktop.org/~olv/tmp/egl-current.png
  (the image size exceeds the list limit)

The diagram shows a default setup.  When --enable-shared-glapi is
given, libGL no longer defines _glapi* and libglapi will be used
exclusively.
> 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.
>
> --
> olv at LunarG.com
>



-- 
olv at LunarG.com


More information about the mesa-dev mailing list