Mesa 5.1 release notes Month day, 2003 PLEASE READ!!!! Introduction ------------ Mesa uses an even/odd version number scheme like the Linux kernel. Even-numbered versions (such as 5.0) designate stable releases. Odd-numbered versions (such as 5.1) designate new developmental releases. Bug fixes --------- See the VERSIONS file for a list of bugs fixed in this release. New Features in Mesa 5.1 ------------------------ New directory tree The whole Mesa directory tree has been cleaned up and reorganized. Some old stuff has been abandoned. Lots of non-Unix makefiles will have to be updated. For now, autoconf/automake support has been removed. New autoconf/automake files will added if they meet certain criteria. GL_ATI_texture_env_combine3 extension This adds a few new texture combine modes. Contributed by Ian Romanick. GL_SGI_texture_color_table Adds a color table lookup to the RGBA texture path. There's a separate color table for each texture unit. Contributed by Eric Plante. GL_NV_fragment_program NVIDIA's fragment-level programming feature. Possible lurking bugs: - the DDX and DDY commands aren't fully tested - there may be bugs in the parser - the TEX and TXP instructions both do perspective correction - the pack/unpack instructions may not be correct GL_EXT_depth_bounds_test This extension adds a scissor-like test for the Z axis. It's used to optimize stencil-volume shadow algorithms. GL_NV_light_max_exponent Lifts the 128 limit for max light exponent. GL_EXT_texture_rectangle Identical to GL_NV_texture_rectangle GL_ARB_occlusion_query Useful for visibility-based culling. GL_ARB_texture_non_power_of_two Removes the restriction that texture dimensions must be powers of two. GL_ARB_vertex_buffer_object Allows server-side vertex arrays, optimized host/card data transfers, etc. GL_ARB_point_sprite ARB-approved version of GL_NV_point_sprite. Basically allows textures to be applied to points. GL_IBM_multimode_draw_arrays Allows multiple vertex arrays to be drawn with one call, including arrays of different types of primitives. GL_SUN_multi_draw_arrays An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4. With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object, GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release) will advertise GL_VERSION = "1.5". Build System Changes -------------------- The "old style" makefile system has been updated: 1. Make-config has been trimmed down to fewer, modern configurations. 2. Most of the bin/mklib.* scripts have been rolled into a new "mklib" script that works on all sorts of systems. There are probably some bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5. Improvements/contributes are greatly appreciated. 3. The Makefile.X11 files have been cleaned up in various ways The GNU automake/autoconf support has been removed. As it was, it seldom worked on anything but Linux. The Mesa developers aren't big fans of automake/autoconf and didn't have the time to maintain it. If someone wants to contribute new automake/autoconf support (and is willing to maintain it), it may be re-incorporated into Mesa. Directory tree reorganization ----------------------------- The directory structure for Mesa has been overhauled to improve its layout. All source code for Mesa, GLU, GLUT, etc is now under the src/ directory in appropriate subdirectories. The Mesa source code and drivers has been reorganized under src/mesa/. All demonstration programs and test are now in subdirectories under progs/. Source File Changes ------------------- The mmath.[ch] files are obsolete. Their contents have been moved into the imports.[ch] and macros.[ch] files. The files related to vertex and fragment programming have changed. Old files: vpexec.[ch] vpparse.[ch] vpstate.[ch] New files: nvvertprog.h - NV vertex program definitions nvfragprog.h - NV fragment program definitions nvvertparse.[ch] - NV vertex program parser nvfragparse.[ch] - NV fragment program parser nvprogram.[ch] - NV program API functions nvvertexec.[ch] - NV vertex program execution swrast/s_nvfragprog.[ch] - NV fragment program execution Removed files: swrast/s_historgram.[ch] - moved into src/histogram.c Other New files: bufferobj.[ch] - GL_ARB_vertex_buffer_object functions arbprogram.[ch] - GL_ARB_vertex/fragment_program functions version.h - defines the Mesa version info Other Changes ------------- The ctx->Driver.CreateTexture function has been removed - it wasn't used. New device driver hook functions: NewTextureObject - used to allocate struct gl_texture_objects NewTextureImage - used to allocate struct gl_texture_images New ctx->Texture._EnabledCoordUnits field: With the addition of GL_NV_fragment_program we may need to interpolate various sets of texture coordinates even when the corresponding texture unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get called but we still may have to interpolate texture coordinates across triangles so that the fragment program will get them. This new field indicates which sets of texture coordinates are needed. If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the same bit MUST be set in ctx->Texture._EnabledCoordUnits. To Do ----- Add screen-awareness to fakeglx.c Device Driver Status -------------------- A number of Mesa's software drivers haven't been actively maintained for some time. We rely on volunteers to maintain many of these drivers. Here's the current status of all included drivers: Driver Status ---------------------- --------------------- XMesa (Xlib) implements OpenGL 1.4 OSMesa (off-screen) implements OpenGL 1.4 FX (3dfx Voodoo1/2) implements OpenGL 1.3 SVGA implements OpenGL 1.3 Wind River UGL implements OpenGL 1.3 Windows/Win32 implements OpenGL 1.4 DJGPP implements OpenGL 1.4 GGI implements OpenGL 1.3 BeOS implements OpenGL 1.4 Allegro needs updating D3D needs updating Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the driver call the _mesa_enable_1_4_extensions() function. ----------------------------------------------------------------------