
                         Mesa 3.1 release notes

                             PLEASE READ!!!!


New copyright
-------------

Mesa 3.1 will be distributed under an XFree86-style copyright instead
of the GNU LGPL.


New directories
---------------

All documentation files are now in the docs/ directory.
All shell scripts are now in the bin/ directory.


New library names
-----------------

Formerly, the main Mesa library was named libMesaGL.so (or libMesaGL.a)
and the GLU library was named libMesaGLU.so (or libMesaGLU.a).

Now, the main library is named libGL.so (or libGL.a) and the GLU library
is named libGLU.so (or libGLU.a).

The change allows Mesa to be more easily substituted for OpenGL.
Specifically, the linker/loader on some Unix-like systems won't
allow libMesaGL.so to be used instead of libGL.so if the application
was linked with the former.

Warning: if you have another OpenGL implementation installed on your
system (i.e. you have another OpenGL libGL.so) you'll have to be
carefull about which library (OpenGL or Mesa) you link against.  Be
aware of -L linker flags and the value of the LD_LIBRARY_PATH environment
variable.


New library versioning
----------------------

Previously, the Mesa GL library was named libMesaGL.so.3.0
To better support Linux/OpenGL standards, the Mesa GL library is now
named libGL.so.1.2.030100  This indicates version 1.2 of the OpenGL spec
and Mesa implementation 3.1.0

In the long term this will allow better interoperability with other
OpenGL implementations, especially on Linux.  In the short term,
OpenGL apps may have to be relinked to use the new library naming.



New makefiles
-------------

The old Makefiles found in the various directories have been renamed
to Makefile.X11 in order to prevent filename collisions with autoconfig-
generated Makefiles.

The top-level Makefile simply includes Makefile.X11
If your top-level Makefile get's overwritten/destroyed you can restore
it by copying Makefile.X11 to Makefile


New extensions
--------------

GL_EXT_stencil_wrap
	Implements two new stencil operations: GL_INCR_WRAP_EXT and
	GL_DECR_WRAP_EXT which allow stencil increment and decrement
	without clamping.

GL_INGR_blend_func_separate
	Allows specification of blend factors for RGB and Alpha independently.
	(INGR = Intergraph)

GL_ARB_multitexture
	Multiple simultaneous textures.  (ARB = Architecture Review Board)

GL_NV_texgen_reflection
	nVidia texgen extension for better reflection mapping.

GL_PGI_misc_hints
	Assorted transformation hints.

GL_EXT_compiled_vertex_array
	Compiled vertex arrays.

GL_EXT_clip_volume_hint
	Allows one to disable clip volume (frustum) testing.



Extensions removed
------------------

GL_EXT_multitexture - obsolete in favor of GL_ARB_multitexture



Config file
-----------

By default, /etc/mesa.conf will be read when Mesa starts.  This
file controls default hints, enable/disable of extensions, and
more.  See the CONFIG file for documentation.



Optimizations
-------------

Keith Whitwell has contributed significant optimizations to Mesa's
vertex transformation code.  Basically, the whole transformation
stage of Mesa has been rewritten.

It's impossible to give a speedup factor.  You'll just have to
try your app and see how it performs.



Device Driver changes
---------------------

A bunch of new device driver functions have been added.  See src/dd.h
Keith Harrison contributed many of them.  I've been planning on adding
a bunch of functions like these to make writing hardware drivers easier.
More such function will probably be added in the near future.



Miscellaneous
-------------

util/glstate.c has some handy functions for debugging.  Basically, it
offers a simple function for printing GL state variables.  It's not
finished yet.  There's a LOT more GLenum records to be added (see the
code).  Anyone want to help?



----------------------------------------------------------------------
$Id: RELNOTES-3.1,v 1.1.1.1 2012/03/29 17:22:08 uid42307 Exp $
