
                           Mesa 6.1 release notes

                              August 18, 2004

                              PLEASE READ!!!!



Introduction
------------

Mesa uses an even/odd version number scheme like the Linux kernel.
Odd numbered versions (such as 6.1) designate new developmental releases.
Even numbered versions (such as 6.0) designate stable releases.


New Features
------------

Half-precision floating point (GLhalf) pixel formats are supported
in Mesa, but the feature isn't exposed yet since the ARB extension
hasn't been finalized yet.


Texture image handling
----------------------

The code which implements image conversion, pixel transfer ops, etc
for glTexImage commands has been rewritten.

Now the gl_texture_format struct has a new StoreImage function
pointer.  Each texture format must implement this function.  The
function is totally responsible for converting the user's texture
image into the specific format.  A few helper functions makes this
relatively simple.

Overall, the code is much simpler, cleaner and easier to work with
now.  Adding new texture formats is straight-forward and there's no
longer any distinction between "hardware" and "software" formats.

Finally, the code for compressed texture images has been reorganized
as well.

Removed files:
  texutil.c
  texutil.h
  texutil_tmp.h

New files:
  texcompress_s3tc.c
  texcompress_fxt1.c



Driver / context changes
------------------------

The _mesa_create_context() and _mesa_initialize_context() function
parameters have changed.  They now take a pointer to a struct
dd_function_table.  Drivers can initialize this table by calling
_mesa_init_driver_functions().  Drivers should then plug in the special
functions they implement.  In particular, the ctx->Driver.NewTextureObject
pointer _must_ be set so that the default texture objects created in
_mesa_create/initialize_context() are correctly built.

The _mesa_init_driver_functions() function allows a lot of redundant code
to be removed from the device drivers (such as initializing
ctx->Driver.Accum to point to _swrast_Accum).  Adding new functions to
the dd_function_table can be done with less hassle since the pointer can
be initialized in _mesa_init_driver_functions() rather than in _all_ the
drivers.


Device Drivers
--------------

Mesa advertises itself as supporting OpenGL 1.2, 1.3, 1.4 or 1.5
depending on the device driver's capabilities.  For example, if the
driver enables all the ARB extensions which are part of OpenGL 1.5
then glGetString(GL_VERSION) will return "1.5".  Otherwise, it'll
return "1.4" or the next lower version that implements all required
functionality.

A number of Mesa's software drivers haven't been actively maintained for
some time.  We rely on volunteers to maintain many of the drivers.
Here's the current status of all included drivers:

Driver			Status
----------------------	---------------------
XMesa (Xlib)		implements OpenGL 1.5
OSMesa (off-screen)	implements OpenGL 1.5
Glide (3dfx Voodoo1/2)	implements OpenGL 1.3
SVGA			implements OpenGL 1.3
Wind River UGL		implements OpenGL 1.3
Windows/Win32		implements OpenGL 1.5
DJGPP			implements OpenGL 1.5
GGI			implements OpenGL 1.3
BeOS			implements OpenGL 1.5
Allegro			needs updating
D3D			needs updating



Other Changes
-------------

See the VERSIONS file for more details about bug fixes, etc. in Mesa 6.1.


----------------------------------------------------------------------
