[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