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.
20
See the VERSIONS file for a list of bugs fixed in this release.
24
New Features in Mesa 5.1
25
------------------------
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.
31
GL_ATI_texture_env_combine3 extension
32
This adds a few new texture combine modes.
33
Contributed by Ian Romanick.
35
GL_SGI_texture_color_table
36
Adds a color table lookup to the RGBA texture path. There's a separate
37
color table for each texture unit.
38
Contributed by Eric Plante.
40
GL_NV_fragment_program
41
NVIDIA's fragment-level programming feature.
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
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.
52
GL_NV_light_max_exponent
53
Lifts the 128 limit for max light exponent.
55
GL_EXT_texture_rectangle
56
Identical to GL_NV_texture_rectangle
58
GL_ARB_occlusion_query
59
Useful for visibility-based culling.
61
GL_ARB_texture_non_power_of_two
62
Removes the restriction that texture dimensions must be powers of two.
64
GL_ARB_vertex_buffer_object
65
Allows server-side vertex arrays, optimized host/card data transfers, etc.
68
ARB-approved version of GL_NV_point_sprite. Basically allows textures
69
to be applied to points.
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.
75
GL_SUN_multi_draw_arrays
76
An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
78
Faster glDrawPixels / glCopyPixels in X11 driver
79
If your X screen is 32bpp, glDrawPixels to the front color buffer will
80
be accelerated (via XPutImage()) if the image format is GL_BGRA and the
81
type is GL_UNSIGNED_BYTE. No raster operations, such as depth test,
82
blend, fog, etc. can be enabled.
84
If your X screen is 16bpp, glDrawPixels to the front color buffer will
85
be accelerated (via XPutImage()) if the image format is GL_RGB and the
86
type is GL_UNSIGNED_SHORT_5_6_5. No raster operations, such as depth
87
test, blend, fog, etc. can be enabled.
89
glCopyPixels() calls for the front color buffer will be accelerated
90
(via XCopyArea()) if no raster operations, such as depth test, blend,
91
fog, pixel zoom, etc. are enabled.
93
The speed-up over typical software rendering is a factor of 10 for
94
glDrawPixels and 100 for glCopyPixels.
97
With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
98
GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
99
all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release)
100
will advertise GL_VERSION = "1.5".
104
Vertex/Fragment program debugger
105
--------------------------------
107
GL_MESA_program_debug is an experimental extension to support
108
interactive debugging of vertex and fragment programs. See the
109
docs/specs/OLD/MESA_program_debug.spec file for details.
111
The bulk of the vertex/fragment program debugger is implemented
112
outside of Mesa. The GL_MESA_program_debug extension just has minimal
113
hooks for stopping running programs and inspecting programs.
115
The progs/tests/debugger.c (only in CVS) program is an example of how
116
the extension can be used. Presently, the debugger code and demo code
117
is in the same file. Eventually the debugger code should be moved
118
into a reusable module.
120
As it is now, the demo lets you set breakpoings in vertex/fragment
121
programs, single step, and print intermediate register values. It's
122
basically just a proof of concept.
126
Directory tree reorganization
127
-----------------------------
129
The directory structure for Mesa has been overhauled to improve its layout.
130
All source code for Mesa, GLU, GLUT, etc is now under the src/ directory
131
in appropriate subdirectories.
133
The Mesa source code and drivers has been reorganized under src/mesa/.
135
All demonstration programs and tests are now in subdirectories under progs/.
142
The GNU automake/autoconf support has been removed. As it was, it seldom
143
worked on anything but Linux. The Mesa developers aren't big fans of
144
automake/autoconf/libtool and didn't have the time to maintain it.
145
If someone wants to contribute new automake/autoconf support (and is
146
willing to maintain it), it may be re-incorporated into Mesa, subject
147
to some requirements.
149
The "old style" makefile system has been updated:
150
1. Make-config has been trimmed down to fewer, modern configurations.
151
2. Most of the bin/mklib.* scripts have been rolled into a new "mklib"
152
script that works on all sorts of systems. There are probably some
153
bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5.
154
Improvements/contributes are greatly appreciated.
155
3. The Makefile.X11 files have been cleaned up in various ways
162
The mmath.[ch] files are obsolete. Their contents have been moved
163
into the imports.[ch] and macros.[ch] files.
165
The files related to vertex and fragment programming have changed.
171
program.[ch] - generic ARB/NV program code
172
arbprogram.[ch] - ARB program API functions
173
arbfragparse.[ch] - ARB fragment program parsing
174
arbvertparse.[ch] - ARB vertex program parsing
175
arbparse.[ch] - ARB vertex/fragment parsing
176
arbparse_syn.h - vertex/fragment program syntax
177
nvprogram.[ch] - NV program API functions
178
nvvertprog.h - NV vertex program definitions
179
nvfragprog.h - NV fragment program definitions
180
nvvertparse.[ch] - NV vertex program parser
181
nvfragparse.[ch] - NV fragment program parser
182
nvvertexec.[ch] - NV vertex program execution
183
swrast/s_nvfragprog.[ch] - NV fragment program execution
185
The files related to per-vertex handling have changed.
187
tnl/t_eval_api.c - old per-vertex code
188
tnl/t_imm_alloc.c - old per-vertex code
189
tnl/t_imm_api.c - old per-vertex code
190
tnl/t_imm_debug.c - old per-vertex code
191
tnl/t_imm_dlist.c - old per-vertex code
192
tnl/t_imm_elt.c - old per-vertex code
193
tnl/t_imm_eval.c - old per-vertex code
194
tnl/t_imm_exec.c - old per-vertex code
195
tnl/t_imm_fixup.c - old per-vertex code
196
tnl/t_vtx_sse.c - old per-vertex code
197
tnl/t_vtx_x86.c - old per-vertex code
199
tnl/t_save_api.c - new per-vertex code
200
tnl/t_save_loopback.c - new per-vertex code
201
tnl/t_save_playback.c - new per-vertex code
202
tnl/t_vtx_eval.c - old per-vertex code
205
bufferobj.[ch] - GL_ARB_vertex_buffer_object functions
206
version.h - defines the Mesa version info
209
swrast/s_histogram.[ch] - moved into src/histogram.c
216
The ctx->Driver.CreateTexture function has been removed - it wasn't used.
218
New device driver hook functions:
219
NewTextureObject - used to allocate struct gl_texture_objects
220
NewTextureImage - used to allocate struct gl_texture_images
222
New ctx->Texture._EnabledCoordUnits field:
223
With the addition of GL_NV_fragment_program we may need to interpolate
224
various sets of texture coordinates even when the corresponding texture
225
unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get
226
called but we still may have to interpolate texture coordinates across
227
triangles so that the fragment program will get them.
228
This new field indicates which sets of texture coordinates are needed.
229
If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the
230
same bit MUST be set in ctx->Texture._EnabledCoordUnits.
232
The ctx->_TriangleCaps field is deprecated.
233
Instead of testing the DD_* bits in _TriangleCaps, you should instead
234
directly test the relevant state variables, or use one of the helper
235
functions like NEED_SECONDARY_COLOR() at the bottom of context.h
236
While testing _TriangleCaps bits was fast, it was kludgey, and setting
237
the bits in the first place could be error prone.
239
New vertex processing code.
240
The code behind glBegin, glEnd, glVertex, glNormal, etc. has been
241
totally rewritten. It's a cleaner implementation now and should use
248
Add screen-awareness to fakeglx.c
256
A number of Mesa's software drivers haven't been actively maintained for
257
some time. We rely on volunteers to maintain many of these drivers.
258
Here's the current status of all included drivers:
262
---------------------- ---------------------
263
XMesa (Xlib) implements OpenGL 1.4
264
OSMesa (off-screen) implements OpenGL 1.4
265
FX (3dfx Voodoo1/2) implements OpenGL 1.3
266
SVGA implements OpenGL 1.3
267
Wind River UGL implements OpenGL 1.3
268
Windows/Win32 implements OpenGL 1.4
269
DJGPP implements OpenGL 1.4
270
GGI implements OpenGL 1.3
271
BeOS implements OpenGL 1.4
272
Allegro needs updating
275
Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
276
driver call the _mesa_enable_1_4_extensions() function.
279
----------------------------------------------------------------------