13
Mesa uses an even/odd version number scheme like the Linux kernel.
14
Odd numbered versions (such as 3.3) designate new developmental releases.
15
Even numbered versions (such as 3.2.1) designate stable releases.
17
Mesa 3.3 has a undergone many internal changes since version 3.2
18
and features a lot of new extensions. 3.3 is expected to be pretty
19
stable, but perhaps not as stable as 3.2 which has been used by
20
thousands of users over the past months.
22
Everyone is encouraged to try Mesa 3.3. Bugs should be reported to
23
the Mesa bug database on www.sourceforge.net.
27
Header file / GLenum changes
28
----------------------------
30
The gl.h and glu.h headers now use #defines to define all GL_* tokens
31
instead of C-language enums. This change improves Mesa/OpenGL
39
The core Mesa gl* functions are now implemented with a new dispatch
40
(jump table) which will allow simultaneous direct/indirect rendering.
42
The code is found in the glapi*.[ch] files.
44
Of interest: the actual "glFooBar" functions are generated with
45
templatized code defined in glapitemp.h and included by glapi.c
46
The glapitemp.h template should be reusable for all sorts of OpenGL
49
The new dispatch code has also optimized with x86 assembly code.
50
This optimization eliminates copying the function arguments during
58
Thread support in Mesa has been rewritten. The glthread.[ch] files
59
replace mthreads.[ch]. Thread safety is always enabled (on platforms
60
which support threads, that is). There is virtually no performance
61
penalty for typical single-thread applications. See the glapi.c
64
The Xlib driver (XMesa) is now thread-safe as well. Be sure to
65
call XInitThreads() in your app first. See the xdemos/glthreads.c
70
Make configuration changes
71
--------------------------
73
If you use the old-style (non GNU automake) method to build Mesa note
74
that several of the configuration names have changed:
77
------------- ----------------
80
linux-386-elf linux-386
81
linux-386 linux-386-static
89
GL_ARB_transpose_matrix
90
Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
93
GL_ARB_texture_cube_map
94
For cube-based reflection mapping.
96
GL_EXT_texture_add_env
97
Adds GL_ADD texture environment mode.
98
See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
100
GL_EXT_texture_lod_bias
101
Allows mipmapped texture blurring and sharpening.
103
GLX_EXT_visual_rating extension
104
This extension has no effect in stand-alone Mesa (used for DRI).
107
Used for bounding box occlusion testing (see demos/occlude.c).
109
GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
110
Lets glDraw/CopyPixels draw a texture coordinate image.
113
Adds a color matrix and another set of scale and bias parameters
114
to the glDraw/CopyPixels paths.
117
Adds additional color tables to the glDraw/Read/CopyPixels paths.
120
Compute histograms for glDraw/Read/CopyPixels.
122
GL_EXT_blend_func_separate
123
This is the same as GL_INGR_blend_func_separate.
125
GL_ARB_texture_cube_mapping
126
6-face cube mapping, nicer than sphere mapping
128
GL_EXT_texture_env_combine
129
For advanced texture environment effects.
132
Documentation for all these functions can be found at
133
http://oss.sgi.com/projects/ogl-sample/registry/
137
GLX_SGI_make_current_read functionality
138
---------------------------------------
140
The functionality of this extension is needed for GLX 1.3 (and required
141
for the Linux/OpenGL standards base).
143
Implementing this function required a **DEVICE DRIVER CHANGE**.
144
The old SetBuffer() function has been replaced by SetReadBuffer() and
145
SetDrawBuffer(). All device drivers will have to be updated because
148
The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
149
The xdemos/wincopy.c program demonstrates it.
153
Image-related code changes
154
--------------------------
156
The imaging path code used by glDrawPixels, glTexImage[123]D,
157
glTexSubImage[123], etc has been rewritten. It's now faster,
158
uses less memory and has several bug fixes. This work was
159
actually started in Mesa 3.1 with the glTexImage paths but has now
160
been carried over to glDrawPixels as well.
164
Device driver interface changes
165
-------------------------------
167
Added new functions for hardware stencil buffer support:
174
Removed old depth buffer functions:
182
Added new depth buffer functions:
188
These functions always read/write 32-bit GLuints. This will allow
189
drivers to have anywhere from 0 to 32-bit Z buffers without
190
recompiling for 16 vs 32 bits as was previously needed.
193
New texture image functions
194
The entire interface for texture image specification has been updated.
195
With the new functions, it's optional for Mesa to keep an internal copy
196
of all textures. Texture download should be a lot faster when the extra
200
TexEnv now takes a target argument
201
Removed UseGlobalTexturePalette (use Enable function instead)
209
The SetBufffer function has been replaced by SetDrawBuffer and
210
SetReadBuffer functions. This lets core Mesa independently
211
specify which buffer is to be used for reading and which for
214
The Clear function's mask parameter has changed. Instead of
215
mask being the flags specified by the user to glClear, the
216
mask is now a bitmask of the DD_*_BIT flags in dd.h. Now
217
multiple color buffers can be specified for clearing (ala
218
glDrawBuffers). The driver's Clear function must also
219
check the glColorMask glIndexMask, and glStencilMask settings
220
and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa
221
drivers for examples.
224
The depth buffer changes shouldn't be hard to make for existing
225
drivers. In fact, it should simply the code. Be careful with
226
the depthBits value passed to gl_create_context(). 1 is a bad
227
value! It should normally be 0, 16, 24, or 32.
230
gl_create_framebuffer() takes new arguments which explicitly tell
231
core Mesa which ancillary buffers (depth, stencil, accum, alpha)
232
should be implemented in software. Mesa hardware drivers should
233
carefully set these flags depending on which buffers are in the
241
Point and line size range and granularity limits are now stored
242
in the gl_constants struct, which is the Const member of GLcontext.
243
The limits are initialized from values in config.h but may be
244
overridden by device drivers to reflect the limits of that driver's
247
Also added constants for NumAuxBuffers and SubPixelBits.
254
Mesa now passes all the OpenGL 1.1 conformance tests, except for
255
antialiased lines. AA lines fail on some, but not all, the tests.
256
In order to fix the remaining failures, a new AA line algorithm will
257
be needed (which computes coverage values for end-point fragments).
258
This will be done for Mesa 3.5/3.6.
262
OpenGL 1.2 GL_ARB_imaging subset
263
--------------------------------
265
Mesa 3.3 implements all the features of GL_ARB_imaging except for
266
image convolution. This will (hopefully) be done for Mesa 3.5/3.6.
270
----------------------------------------------------------------------