Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 1 | |
| 2 | Mesa 5.1 release notes |
| 3 | |
| 4 | Month day, 2003 |
| 5 | |
| 6 | PLEASE READ!!!! |
| 7 | |
| 8 | |
| 9 | |
| 10 | Introduction |
| 11 | ------------ |
| 12 | |
| 13 | Mesa uses an even/odd version number scheme like the Linux kernel. |
| 14 | Even-numbered versions (such as 5.0) designate stable releases. |
| 15 | Odd-numbered versions (such as 5.1) designate new developmental releases. |
| 16 | |
| 17 | |
Brian Paul | dc32636 | 2003-03-07 20:21:51 +0000 | [diff] [blame] | 18 | Bug fixes |
| 19 | --------- |
| 20 | See the VERSIONS file for a list of bugs fixed in this release. |
| 21 | |
| 22 | |
| 23 | |
Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 24 | New Features in Mesa 5.1 |
| 25 | ------------------------ |
| 26 | |
Brian Paul | 0dde190 | 2003-11-24 15:39:55 +0000 | [diff] [blame^] | 27 | GL_ARB_vertex_program / GL_ARB_fragment_program |
| 28 | Michal Krol and Karl Rasche implemented these extensions. Thanks! |
| 29 | Be aware that there may be some rough edges and lurking bugs. |
| 30 | |
Brian Paul | 943f0c6 | 2003-01-21 15:49:06 +0000 | [diff] [blame] | 31 | GL_ATI_texture_env_combine3 extension |
| 32 | This adds a few new texture combine modes. |
| 33 | Contributed by Ian Romanick. |
Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 34 | |
Brian Paul | ccec647 | 2003-01-21 21:48:29 +0000 | [diff] [blame] | 35 | GL_SGI_texture_color_table |
Brian Paul | a89cc0e | 2003-02-13 16:01:33 +0000 | [diff] [blame] | 36 | Adds a color table lookup to the RGBA texture path. There's a separate |
| 37 | color table for each texture unit. |
Brian Paul | ccec647 | 2003-01-21 21:48:29 +0000 | [diff] [blame] | 38 | Contributed by Eric Plante. |
Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 39 | |
Brian Paul | 4e50ab5 | 2003-03-01 01:50:13 +0000 | [diff] [blame] | 40 | GL_NV_fragment_program |
| 41 | NVIDIA's fragment-level programming feature. |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 42 | Possible lurking bugs: |
| 43 | - the DDX and DDY commands aren't fully tested |
| 44 | - there may be bugs in the parser |
| 45 | - the TEX and TXP instructions both do perspective correction |
| 46 | - the pack/unpack instructions may not be correct |
| 47 | |
| 48 | GL_EXT_depth_bounds_test |
| 49 | This extension adds a scissor-like test for the Z axis. It's used to |
| 50 | optimize stencil-volume shadow algorithms. |
| 51 | |
| 52 | GL_NV_light_max_exponent |
| 53 | Lifts the 128 limit for max light exponent. |
| 54 | |
Brian Paul | 5e04bcf | 2003-06-10 15:01:45 +0000 | [diff] [blame] | 55 | GL_EXT_texture_rectangle |
| 56 | Identical to GL_NV_texture_rectangle |
| 57 | |
Brian Paul | b17a722 | 2003-06-13 02:37:27 +0000 | [diff] [blame] | 58 | GL_ARB_occlusion_query |
| 59 | Useful for visibility-based culling. |
| 60 | |
Brian Paul | 235c150 | 2003-07-03 03:07:12 +0000 | [diff] [blame] | 61 | GL_ARB_texture_non_power_of_two |
| 62 | Removes the restriction that texture dimensions must be powers of two. |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 63 | |
Brian Paul | 83f57e3 | 2003-09-17 21:22:54 +0000 | [diff] [blame] | 64 | GL_ARB_vertex_buffer_object |
| 65 | Allows server-side vertex arrays, optimized host/card data transfers, etc. |
| 66 | |
| 67 | GL_ARB_point_sprite |
| 68 | ARB-approved version of GL_NV_point_sprite. Basically allows textures |
| 69 | to be applied to points. |
| 70 | |
Brian Paul | d2d3052 | 2003-08-24 14:56:20 +0000 | [diff] [blame] | 71 | GL_IBM_multimode_draw_arrays |
| 72 | Allows multiple vertex arrays to be drawn with one call, including arrays |
| 73 | of different types of primitives. |
| 74 | |
| 75 | GL_SUN_multi_draw_arrays |
| 76 | An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4. |
| 77 | |
| 78 | |
Brian Paul | 83f57e3 | 2003-09-17 21:22:54 +0000 | [diff] [blame] | 79 | With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object, |
| 80 | GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports |
| 81 | all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release) |
| 82 | will advertise GL_VERSION = "1.5". |
| 83 | |
| 84 | |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 85 | |
Brian Paul | 9b101c3 | 2003-09-23 15:40:57 +0000 | [diff] [blame] | 86 | Vertex/Fragment program debugger |
| 87 | -------------------------------- |
| 88 | |
| 89 | GL_MESA_program_debug is an experimental extension to support |
| 90 | interactive debugging of vertex and fragment programs. See the |
| 91 | docs/MESA_program_debug.spec file for details. |
| 92 | |
| 93 | The bulk of the vertex/fragment program debugger is implemented |
| 94 | outside of Mesa. The GL_MESA_program_debug extension just has minimal |
| 95 | hooks for stopping running programs and inspecting programs. |
| 96 | |
| 97 | The progs/tests/debugger.c (only in CVS) program is an example of how |
| 98 | the extension can be used. Presently, the debugger code and demo code |
| 99 | is in the same file. Eventually the debugger code should be moved |
| 100 | into a reusable module. |
| 101 | |
| 102 | As it is now, the demo lets you set breakpoings in vertex/fragment |
| 103 | programs, single step, and print intermediate register values. It's |
| 104 | basically just a proof of concept. |
| 105 | |
| 106 | |
| 107 | |
| 108 | Directory tree reorganization |
| 109 | ----------------------------- |
| 110 | |
| 111 | The directory structure for Mesa has been overhauled to improve its layout. |
| 112 | All source code for Mesa, GLU, GLUT, etc is now under the src/ directory |
| 113 | in appropriate subdirectories. |
| 114 | |
| 115 | The Mesa source code and drivers has been reorganized under src/mesa/. |
| 116 | |
| 117 | All demonstration programs and tests are now in subdirectories under progs/. |
| 118 | |
| 119 | |
| 120 | |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 121 | Build System Changes |
| 122 | -------------------- |
| 123 | |
Brian Paul | 65f6058 | 2003-09-17 21:36:08 +0000 | [diff] [blame] | 124 | The GNU automake/autoconf support has been removed. As it was, it seldom |
| 125 | worked on anything but Linux. The Mesa developers aren't big fans of |
| 126 | automake/autoconf/libtool and didn't have the time to maintain it. |
| 127 | If someone wants to contribute new automake/autoconf support (and is |
| 128 | willing to maintain it), it may be re-incorporated into Mesa, subject |
| 129 | to some requirements. |
| 130 | |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 131 | The "old style" makefile system has been updated: |
| 132 | 1. Make-config has been trimmed down to fewer, modern configurations. |
| 133 | 2. Most of the bin/mklib.* scripts have been rolled into a new "mklib" |
| 134 | script that works on all sorts of systems. There are probably some |
| 135 | bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5. |
| 136 | Improvements/contributes are greatly appreciated. |
| 137 | 3. The Makefile.X11 files have been cleaned up in various ways |
| 138 | |
Brian Paul | d2d3052 | 2003-08-24 14:56:20 +0000 | [diff] [blame] | 139 | |
| 140 | |
Brian Paul | 4e50ab5 | 2003-03-01 01:50:13 +0000 | [diff] [blame] | 141 | Source File Changes |
| 142 | ------------------- |
| 143 | |
| 144 | The mmath.[ch] files are obsolete. Their contents have been moved |
| 145 | into the imports.[ch] and macros.[ch] files. |
| 146 | |
| 147 | The files related to vertex and fragment programming have changed. |
| 148 | Old files: |
| 149 | vpexec.[ch] |
| 150 | vpparse.[ch] |
| 151 | vpstate.[ch] |
| 152 | New files: |
Brian Paul | 65f6058 | 2003-09-17 21:36:08 +0000 | [diff] [blame] | 153 | program.[ch] - generic ARB/NV program code |
| 154 | arbprogram.[ch] - ARB program API functions |
| 155 | nvprogram.[ch] - NV program API functions |
Brian Paul | 4e50ab5 | 2003-03-01 01:50:13 +0000 | [diff] [blame] | 156 | nvvertprog.h - NV vertex program definitions |
| 157 | nvfragprog.h - NV fragment program definitions |
| 158 | nvvertparse.[ch] - NV vertex program parser |
| 159 | nvfragparse.[ch] - NV fragment program parser |
Brian Paul | 4e50ab5 | 2003-03-01 01:50:13 +0000 | [diff] [blame] | 160 | nvvertexec.[ch] - NV vertex program execution |
| 161 | swrast/s_nvfragprog.[ch] - NV fragment program execution |
| 162 | |
Brian Paul | 9c27050 | 2003-03-29 16:39:52 +0000 | [diff] [blame] | 163 | Removed files: |
Brian Paul | 65f6058 | 2003-09-17 21:36:08 +0000 | [diff] [blame] | 164 | swrast/s_histogram.[ch] - moved into src/histogram.c |
Brian Paul | 4e50ab5 | 2003-03-01 01:50:13 +0000 | [diff] [blame] | 165 | |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 166 | Other New files: |
Brian Paul | 7f223f2 | 2003-03-30 16:17:54 +0000 | [diff] [blame] | 167 | bufferobj.[ch] - GL_ARB_vertex_buffer_object functions |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 168 | version.h - defines the Mesa version info |
| 169 | |
| 170 | |
| 171 | Other Changes |
| 172 | ------------- |
| 173 | |
| 174 | The ctx->Driver.CreateTexture function has been removed - it wasn't used. |
| 175 | |
| 176 | New device driver hook functions: |
| 177 | NewTextureObject - used to allocate struct gl_texture_objects |
| 178 | NewTextureImage - used to allocate struct gl_texture_images |
| 179 | |
| 180 | New ctx->Texture._EnabledCoordUnits field: |
| 181 | With the addition of GL_NV_fragment_program we may need to interpolate |
| 182 | various sets of texture coordinates even when the corresponding texture |
| 183 | unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get |
| 184 | called but we still may have to interpolate texture coordinates across |
| 185 | triangles so that the fragment program will get them. |
| 186 | This new field indicates which sets of texture coordinates are needed. |
| 187 | If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the |
| 188 | same bit MUST be set in ctx->Texture._EnabledCoordUnits. |
| 189 | |
Brian Paul | effa9af | 2003-09-18 23:42:08 +0000 | [diff] [blame] | 190 | The ctx->_TriangleCaps field is deprecated. |
| 191 | Instead of testing the DD_* bits in _TriangleCaps, you should instead |
| 192 | directly test the relevant state variables, or use one of the helper |
| 193 | functions like NEED_SECONDARY_COLOR() at the bottom of context.h |
| 194 | While testing _TriangleCaps bits was fast, it was kludgey, and setting |
| 195 | the bits in the first place could be error prone. |
| 196 | |
Brian Paul | 0dde190 | 2003-11-24 15:39:55 +0000 | [diff] [blame^] | 197 | New vertex processing code. |
| 198 | The code behind glBegin, glEnd, glVertex, glNormal, etc. has been |
| 199 | totally rewritten. It's a cleaner implementation now and should use |
| 200 | less memory. (Keith) |
| 201 | |
Brian Paul | c0e1189 | 2003-06-01 16:27:37 +0000 | [diff] [blame] | 202 | |
| 203 | |
| 204 | To Do |
| 205 | ----- |
| 206 | Add screen-awareness to fakeglx.c |
| 207 | |
Brian Paul | 7f223f2 | 2003-03-30 16:17:54 +0000 | [diff] [blame] | 208 | |
Brian Paul | 4e50ab5 | 2003-03-01 01:50:13 +0000 | [diff] [blame] | 209 | |
Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 210 | |
| 211 | Device Driver Status |
| 212 | -------------------- |
| 213 | |
| 214 | A number of Mesa's software drivers haven't been actively maintained for |
| 215 | some time. We rely on volunteers to maintain many of these drivers. |
| 216 | Here's the current status of all included drivers: |
| 217 | |
| 218 | |
| 219 | Driver Status |
| 220 | ---------------------- --------------------- |
| 221 | XMesa (Xlib) implements OpenGL 1.4 |
| 222 | OSMesa (off-screen) implements OpenGL 1.4 |
| 223 | FX (3dfx Voodoo1/2) implements OpenGL 1.3 |
| 224 | SVGA implements OpenGL 1.3 |
| 225 | Wind River UGL implements OpenGL 1.3 |
| 226 | Windows/Win32 implements OpenGL 1.4 |
Brian Paul | 971e4d6 | 2003-03-11 15:34:42 +0000 | [diff] [blame] | 227 | DJGPP implements OpenGL 1.4 |
Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 228 | GGI implements OpenGL 1.3 |
Brian Paul | 7f223f2 | 2003-03-30 16:17:54 +0000 | [diff] [blame] | 229 | BeOS implements OpenGL 1.4 |
Brian Paul | 7c0e32b | 2002-12-18 14:57:34 +0000 | [diff] [blame] | 230 | Allegro needs updating |
| 231 | D3D needs updating |
| 232 | |
| 233 | Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the |
| 234 | driver call the _mesa_enable_1_4_extensions() function. |
| 235 | |
| 236 | |
| 237 | ---------------------------------------------------------------------- |