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