Update the Makefiles and includes for the new paths.
Note that there hasn't been no separation of the Makefiles yet, and make is
jumping all over the place. That will be taken care shortly. But for now, make
should work. It was tested with linux and linux-dri. Linux-cell and linux-llvm
might require some minor tweaks.
Make 'USING_EGL=0' the default for now. It's causing too much confusion for
too many non-developers (which in turn wastes too much developer time). It
is trivially overridden from the make command line. See comments in
linux-dri.
Remove the logic that determines at compile time whether or not HAVE_ALIAS
should be defined. It was flawed on some platforms (e.g., Darwin & mingw).
Instead, rely on the build system to define it on the compiler command line.
This also reverts ajax's hand-edit to indirect_size.c. I'll fix that on the
X.org side of things later today.
Add a new config called linux-indirect. This build the GLX libGL just like
linux-dri, but it disables support for direct-rendering in it. This config
mainly exists so that I can verify that changes to libGL haven't broken
builds on non-DRI platforms.
All elements of pre-DRI_NEW_INTERFACE_ONLY are removed. This allows
1,402 lines of code to be removed from Mesa (drivers and libGL). The
big winner is dri_util.c.
Primary changes are:
1. Remove all "deprecated" entry-points from the various structures in
dri_interface.h.
2. Rename the remaining fields to removed "version numbers." So,
bindContext3 becomes bindContext. Functions with "New" in the name
(e.g., CreateNewContext) were *not* changed, but that is an option.
Having "New" in the name is less annoying to me than having "3" in the name.
3. Remove all compatibility code that handles cases where the driver or
the loader is too old to support the latest interfaces.
4. Append the API version to the __driCreateNewScreen function name.
This is currently done by hand. In the future (i.e., the next time we
make an incompatible change to the interface) we'll want to come up with
a better way to do this. This prevents old loaders from being able to load
new (incompatible) drivers.
5. Bump the API version to 20050722. All drivers (by way of dri_util.c)
require this version.
6. All drivers are *required* to expose GLX_SGIX_fbconfig and
GLX_OML_swap_method (or the moral equivalents). Support for these
functions in implicit in the use of the "new" interface.
7. Some cases still exist that need to be compiled differently in a loader
or core Mesa versus in a driver. These are identified by the define
IN_DRI_DRIVER.
Make linux-dri-x86-64 more like linux-dri-x86. Add ARCH_FLAGS. This is
where things like "-m64" or "-m32" should be specified. Using this, a
32-bit DRI build can be done on an x86-64 system by doing 'ARCH_CFLAGS=-m32
make linux-dri-x86'. Minor tweaks to linux-dri to support these changes.
Improve the behaviour of the build system wrt depend files.
- Remove the -Y option for makedepend, so that the standard
directories are searched
- No longer pipe the multiple errors that the -Y option caused
into /dev/null -- we want to know about these failures.
- Fix up a few other misc makedepend failures.
Add Roland Scheidegger's S3TC patch. This patch does not implement the
(patented) S3TC/DXTC algorithms, but adds an option to dlopen a library module
providing functions to do so. Because it uses dlopen, it is only enabled if
USE_EXTERNAL_DXTN_LIB=1 is defined (which is only in linux-dri config, so far).
It adds support for S3TC to several DRI drivers, and adds a DRI config option to
force enabling S3TC even if the software compression/decompression is
unavailable. This may allow people to use apps that require S3TC even though
they don't have a license to implement the patented material themselves, if
those apps use precompressed textures.
Ideally we would get permission from the current holder of the patents to
implement the algorithm in Mesa, at which point the dlopen mess could go away.
Until then, this allows some to run applications they couldn't otherwise, and
hopefully will provide us with more push to get the final step of getting that
permission done.
Refactor the linux-dri config files so that linux-dri-x86 inherits from
linux-dri. Turn on -O by default (-O2 provides a slight improvement in
performance, at a large cost to debuggability). Turn off -fPIC on x86 by
default. Turn on -Wall, to catch more stupid mistakes. This could be both done
cleaner, and done for more config files, but it works for me for now.