blob: d8e83cf5e668686e29d68381fea2bb18d56faa97 [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 Paul0dde1902003-11-24 15:39:55 +000027GL_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 Paul943f0c62003-01-21 15:49:06 +000031GL_ATI_texture_env_combine3 extension
32 This adds a few new texture combine modes.
33 Contributed by Ian Romanick.
Brian Paul7c0e32b2002-12-18 14:57:34 +000034
Brian Paulccec6472003-01-21 21:48:29 +000035GL_SGI_texture_color_table
Brian Paula89cc0e2003-02-13 16:01:33 +000036 Adds a color table lookup to the RGBA texture path. There's a separate
37 color table for each texture unit.
Brian Paulccec6472003-01-21 21:48:29 +000038 Contributed by Eric Plante.
Brian Paul7c0e32b2002-12-18 14:57:34 +000039
Brian Paul4e50ab52003-03-01 01:50:13 +000040GL_NV_fragment_program
41 NVIDIA's fragment-level programming feature.
Brian Paulc0e11892003-06-01 16:27:37 +000042 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
48GL_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
52GL_NV_light_max_exponent
53 Lifts the 128 limit for max light exponent.
54
Brian Paul5e04bcf2003-06-10 15:01:45 +000055GL_EXT_texture_rectangle
56 Identical to GL_NV_texture_rectangle
57
Brian Paulb17a7222003-06-13 02:37:27 +000058GL_ARB_occlusion_query
59 Useful for visibility-based culling.
60
Brian Paul235c1502003-07-03 03:07:12 +000061GL_ARB_texture_non_power_of_two
62 Removes the restriction that texture dimensions must be powers of two.
Brian Paulc0e11892003-06-01 16:27:37 +000063
Brian Paul83f57e32003-09-17 21:22:54 +000064GL_ARB_vertex_buffer_object
65 Allows server-side vertex arrays, optimized host/card data transfers, etc.
66
67GL_ARB_point_sprite
68 ARB-approved version of GL_NV_point_sprite. Basically allows textures
69 to be applied to points.
70
Brian Pauld2d30522003-08-24 14:56:20 +000071GL_IBM_multimode_draw_arrays
72 Allows multiple vertex arrays to be drawn with one call, including arrays
73 of different types of primitives.
74
75GL_SUN_multi_draw_arrays
76 An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
77
78
Brian Paul83f57e32003-09-17 21:22:54 +000079With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
80GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
81all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release)
82will advertise GL_VERSION = "1.5".
83
84
Brian Paulc0e11892003-06-01 16:27:37 +000085
Brian Paul9b101c32003-09-23 15:40:57 +000086Vertex/Fragment program debugger
87--------------------------------
88
89GL_MESA_program_debug is an experimental extension to support
90interactive debugging of vertex and fragment programs. See the
91docs/MESA_program_debug.spec file for details.
92
93The bulk of the vertex/fragment program debugger is implemented
94outside of Mesa. The GL_MESA_program_debug extension just has minimal
95hooks for stopping running programs and inspecting programs.
96
97The progs/tests/debugger.c (only in CVS) program is an example of how
98the extension can be used. Presently, the debugger code and demo code
99is in the same file. Eventually the debugger code should be moved
100into a reusable module.
101
102As it is now, the demo lets you set breakpoings in vertex/fragment
103programs, single step, and print intermediate register values. It's
104basically just a proof of concept.
105
106
107
108Directory tree reorganization
109-----------------------------
110
111The directory structure for Mesa has been overhauled to improve its layout.
112All source code for Mesa, GLU, GLUT, etc is now under the src/ directory
113in appropriate subdirectories.
114
115The Mesa source code and drivers has been reorganized under src/mesa/.
116
117All demonstration programs and tests are now in subdirectories under progs/.
118
119
120
Brian Paulc0e11892003-06-01 16:27:37 +0000121Build System Changes
122--------------------
123
Brian Paul65f60582003-09-17 21:36:08 +0000124The GNU automake/autoconf support has been removed. As it was, it seldom
125worked on anything but Linux. The Mesa developers aren't big fans of
126automake/autoconf/libtool and didn't have the time to maintain it.
127If someone wants to contribute new automake/autoconf support (and is
128willing to maintain it), it may be re-incorporated into Mesa, subject
129to some requirements.
130
Brian Paulc0e11892003-06-01 16:27:37 +0000131The "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 Pauld2d30522003-08-24 14:56:20 +0000139
140
Brian Paul4e50ab52003-03-01 01:50:13 +0000141Source File Changes
142-------------------
143
144The mmath.[ch] files are obsolete. Their contents have been moved
145into the imports.[ch] and macros.[ch] files.
146
147The files related to vertex and fragment programming have changed.
148Old files:
149 vpexec.[ch]
150 vpparse.[ch]
151 vpstate.[ch]
152New files:
Brian Paul65f60582003-09-17 21:36:08 +0000153 program.[ch] - generic ARB/NV program code
154 arbprogram.[ch] - ARB program API functions
155 nvprogram.[ch] - NV program API functions
Brian Paul4e50ab52003-03-01 01:50:13 +0000156 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 Paul4e50ab52003-03-01 01:50:13 +0000160 nvvertexec.[ch] - NV vertex program execution
161 swrast/s_nvfragprog.[ch] - NV fragment program execution
162
Brian Paul9c270502003-03-29 16:39:52 +0000163Removed files:
Brian Paul65f60582003-09-17 21:36:08 +0000164 swrast/s_histogram.[ch] - moved into src/histogram.c
Brian Paul4e50ab52003-03-01 01:50:13 +0000165
Brian Paulc0e11892003-06-01 16:27:37 +0000166Other New files:
Brian Paul7f223f22003-03-30 16:17:54 +0000167 bufferobj.[ch] - GL_ARB_vertex_buffer_object functions
Brian Paulc0e11892003-06-01 16:27:37 +0000168 version.h - defines the Mesa version info
169
170
171Other Changes
172-------------
173
174The ctx->Driver.CreateTexture function has been removed - it wasn't used.
175
176New device driver hook functions:
177 NewTextureObject - used to allocate struct gl_texture_objects
178 NewTextureImage - used to allocate struct gl_texture_images
179
180New 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 Pauleffa9af2003-09-18 23:42:08 +0000190The 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 Paul0dde1902003-11-24 15:39:55 +0000197New 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 Paulc0e11892003-06-01 16:27:37 +0000202
203
204To Do
205-----
206Add screen-awareness to fakeglx.c
207
Brian Paul7f223f22003-03-30 16:17:54 +0000208
Brian Paul4e50ab52003-03-01 01:50:13 +0000209
Brian Paul7c0e32b2002-12-18 14:57:34 +0000210
211Device Driver Status
212--------------------
213
214A number of Mesa's software drivers haven't been actively maintained for
215some time. We rely on volunteers to maintain many of these drivers.
216Here's the current status of all included drivers:
217
218
219Driver Status
220---------------------- ---------------------
221XMesa (Xlib) implements OpenGL 1.4
222OSMesa (off-screen) implements OpenGL 1.4
223FX (3dfx Voodoo1/2) implements OpenGL 1.3
224SVGA implements OpenGL 1.3
225Wind River UGL implements OpenGL 1.3
226Windows/Win32 implements OpenGL 1.4
Brian Paul971e4d62003-03-11 15:34:42 +0000227DJGPP implements OpenGL 1.4
Brian Paul7c0e32b2002-12-18 14:57:34 +0000228GGI implements OpenGL 1.3
Brian Paul7f223f22003-03-30 16:17:54 +0000229BeOS implements OpenGL 1.4
Brian Paul7c0e32b2002-12-18 14:57:34 +0000230Allegro needs updating
231D3D needs updating
232
233Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
234driver call the _mesa_enable_1_4_extensions() function.
235
236
237----------------------------------------------------------------------