On Sun, Jan 16, 2011 at 9:25 PM, Jose Fonseca <jfons...@vmware.com> wrote:
> The diagram looks sensible to me FWIW.
Great.
> But I'd like to point out though that spite the emergence of pipe_xxx.so and 
> st_xxx.so dynamic drivers, the Gallium interface should remain a private 
> interface of Mesa project. There is a lot of catching up necessary to support 
> newer GL extensions and other Khronos APIs, so gallium interface will 
> continue to evolve in the foreseeable future.  Applications, toolkits, etc, 
> should target GL/VG/CL/etc, for which there is a well established ABI defined.
Yes.  They (pipe_xxx.so and st_xxx.so) are private modules to
egl_gallium.so.  No stable ABI is guaranteed between them.  Packagers
usually package them together wit egl_gallium in a separate package.

Despite that, they and egl_gallium should theoretically not be
installed when there are DRI drivers and egl_dri2.  egl_gallium is
more for special needs on such systems, such as EGL/fbdev and
OSMESA-like substitute.  And for those needs, egl_gallium can be made
a built-in driver of libEGL, meaning no egl_gallium.so, no
pipe_xxx.so, and no st_xxx.so.

It is however installed to supplement egl_dri2 in some situations:
swrast, openvg, and nouveau.  (Nothing stops egl_dri2 from doing those
except that the code is not written)

>
> Jose
>
> ________________________________________
> From: mesa-dev-bounces+jfonseca=vmware....@lists.freedesktop.org 
> [mesa-dev-bounces+jfonseca=vmware....@lists.freedesktop.org] On Behalf Of 
> Chia-I Wu [olva...@gmail.com]
> Sent: Sunday, January 16, 2011 9:42
> To: mesa-dev@lists.freedesktop.org
> Subject: Re: [Mesa-dev] [RFC] Solution to libGL.so and libGLES*.so mess
>
> On Fri, Dec 31, 2010 at 5:38 PM, Chia-I Wu <olva...@gmail.com> wrote:
>> On Wed, Dec 29, 2010 at 3:50 AM, Chia-I Wu <olva...@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.
> It has been a while.  If there is no objection, I will push the
> changes to master on Wednesday.
>
>>> 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
>>>
>>
>>
>>
>> --
>> o...@lunarg.com
>>
>
>
>
> --
> o...@lunarg.com
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>



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

Reply via email to