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