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. ----------------------------------------------------------------------