2010/2/8 Kristian Høgsberg <k...@bitplanet.net>:
> 2010/2/6 Chia-I Wu <olva...@gmail.com>:
>> On Fri, Feb 05, 2010 at 07:24:00PM -0500, Kristian Høgsberg wrote:
>>> These two patches move things around in GLX a bit.  To make it possible
>>> to use libGL with EGL on framebuffer without pulling in X dependencies
>>> this patch make the GLX entry points and all the indirect API a
>>> ./configure time option.  When disabled, libGL is essentially just glapi
>>> and needs libEGL to be useful.  I had to go back to using a list of
>>> glapi object files instead of libglapi.a, since without the glx functions
>>> nothing is left to pull in the glapi files.
>> Do we have to list the glapi object files?  Is -Wl,--whole-archive
>> enough?
> I don't think that works on other platforms.
I did not realise that --whole-archive is not portable.  Gallium's libGL.so
plays the trick by defining a dummy function that calls glXGetProcAddress,
which hopefully references all public symbols.  It is no better though.
>> I think something like "ABI breakage for Linux/X11" should also be added
>> to the description of --disable-glx.  libGL.so is required to have both
>> GL and GLX entries on Linux/X11.  Incidentally, there is an implementers
>> guide on Khronos website that you might find interesting
> Is that really necessary?  The option defaults to off, and anybody
> passing --disable-glx shouldn't be surprised when glx symbols are not
> no longer present in libGL.  It's pretty self-explanatory.
>> I've also been thinking how to design the configure options such that it
>> is possible to produce libraries for the target platform (libGL with or
>> without GLX, or maybe OpenGL ES DRI drivers) for normal users.
>> Addtionally, it should also be possible to enable everything so that any
>> build failure can be catched.  We might be able to start with smaller
>> steps.
> What smaller step would you suggest?  I don't see a way to break this
> patch into smaller pieces, and it's functionality we'll have to add to
> mesa at some point.
Sorry I was not clear.  This patch series is the first smaller step.

Eventually, it might be desirable to be able to build most components in Mesa
in a debug build, including multiple versions of libGL.so.  It happens
sometimes (weekly?) that some commits break the build of certain components.
It should be good if we can suggest a set of configure options that may be used
when working on structure/header changes.
>>> The other patch renames glx to gl, now that it's no longer glx only, and
>>> moves the code up one level from src/glx/x11 to src/gl.  The patch
>>> drops src/glx/mini; it's DRI1 only, not maintained and EGL on KMS is a
>>> better solution for the use cases where miniglx was useful.
>> I haven't tried this.  But ideally, I think src/glx/x11/ can be moved up
>> one level to src/glx/.  This directory will not be visited when
>> --disable-glx.  But when visited, it will build libglx.a from the
>> sources.
>> We can then build libGL.so with or without libglx.a depending on the
>> configure optins.  Later, src/mesa/drivers/x11/ could be changed to
>> build libglxsw.a.  We will be able to choose between 3 flavors of
>> libGL.so, or choose all of them (to catch build failure)
> I wanted to do something similar, but the problem is: where do you
> build libGL? And glx is part of libGL so it's consistent to call the
> directory src/gl.  And I don't think it's worth the effort to make it
It may be a little confusing to enter a directory full of sources and build a
shared library consisting of none of them.  Maybe glx sources can go into
src/gl/glx/?  This is a minor issue that may be left for future.
> possible to plug in different glx implementations, we already have the
> dri sw driver as well as server side sw fallback for glx.
It does not target packagers or end users.  I was thinking how do we test a
change to core Mesa in both libmesa.a and libmesagallium.a?  There are another
set of DRI drivers and libGL that live in src/gallium/.

-- 
o...@lunarg.com

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to