blob: 3850767bb1df47207ad63cd9cccdb3ecde805964 [file] [log] [blame]
Brian Paula518b472000-04-07 17:07:32 +00001
2 Mesa 3.3 release notes
3
Brian Paulebc22c02000-07-21 16:26:41 +00004 July 21, 2000
5
Brian Paula518b472000-04-07 17:07:32 +00006 PLEASE READ!!!!
7
8
9
Brian Paulebc22c02000-07-21 16:26:41 +000010Introduction
11------------
12
13Mesa uses an even/odd version number scheme like the Linux kernel.
14Odd numbered versions (such as 3.3) designate new developmental releases.
15Even numbered versions (such as 3.2.1) designate stable releases.
16
17Mesa 3.3 has a undergone many internal changes since version 3.2
18and features a lot of new extensions. 3.3 is expected to be pretty
19stable, but perhaps not as stable as 3.2 which has been used by
20thousands of users over the past months.
21
22Everyone is encouraged to try Mesa 3.3. Bugs should be reported to
23the Mesa bug database on www.sourceforge.net.
24
25
Brian Paula518b472000-04-07 17:07:32 +000026
27Header file / GLenum changes
28----------------------------
29
30The gl.h and glu.h headers now use #defines to define all GL_* tokens
31instead of C-language enums. This change improves Mesa/OpenGL
32interoperability.
33
34
35
36New API dispatch code
37---------------------
38
39The core Mesa gl* functions are now implemented with a new dispatch
40(jump table) which will allow simultaneous direct/indirect rendering.
41
42The code is found in the glapi*.[ch] files.
43
44Of interest: the actual "glFooBar" functions are generated with
45templatized code defined in glapitemp.h and included by glapi.c
46The glapitemp.h template should be reusable for all sorts of OpenGL
47projects.
48
Brian Paulebc22c02000-07-21 16:26:41 +000049The new dispatch code has also optimized with x86 assembly code.
50This optimization eliminates copying the function arguments during
51dispatch.
52
53
Brian Paula518b472000-04-07 17:07:32 +000054
55New thread support
56------------------
57
58Thread support in Mesa has been rewritten. The glthread.[ch] files
59replace mthreads.[ch]. Thread safety is always enabled (on platforms
60which support threads, that is). There is virtually no performance
61penalty for typical single-thread applications. See the glapi.c
62file for details.
63
Brian Paulebc22c02000-07-21 16:26:41 +000064The Xlib driver (XMesa) is now thread-safe as well. Be sure to
65call XInitThreads() in your app first. See the xdemos/glthreads.c
66demo for an example.
67
Brian Paula518b472000-04-07 17:07:32 +000068
69
70Make configuration changes
71--------------------------
72
73If you use the old-style (non GNU automake) method to build Mesa note
74that several of the configuration names have changed:
75
76 Old name New name
77 ------------- ----------------
78 linux-elf linux
79 linux linux-static
80 linux-386-elf linux-386
81 linux-386 linux-386-static
82 etc.
83
84
85
86New extensions
87--------------
88
Brian Paulf2fc19d2000-05-22 18:46:52 +000089GL_ARB_transpose_matrix
90 Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
91 functions.
Brian Paula518b472000-04-07 17:07:32 +000092
Brian Paul16541de2000-05-26 14:45:25 +000093GL_ARB_texture_cube_map
94 For cube-based reflection mapping.
95
Brian Paula518b472000-04-07 17:07:32 +000096GL_EXT_texture_add_env
97 Adds GL_ADD texture environment mode.
98 See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
99
100GL_EXT_texture_lod_bias
101 Allows mipmapped texture blurring and sharpening.
102
103GLX_EXT_visual_rating extension
104 This extension has no effect in stand-alone Mesa (used for DRI).
105
106GL_HP_occlusion_test
107 Used for bounding box occlusion testing (see demos/occlude.c).
108
109GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
Brian Paul39350962000-04-08 18:58:05 +0000110 Lets glDraw/CopyPixels draw a texture coordinate image.
Brian Paula518b472000-04-07 17:07:32 +0000111
Brian Paul39350962000-04-08 18:58:05 +0000112GL_SGI_color_matrix
113 Adds a color matrix and another set of scale and bias parameters
114 to the glDraw/CopyPixels paths.
Brian Paula518b472000-04-07 17:07:32 +0000115
Brian Paul0bb0c7c2000-04-17 15:14:33 +0000116GL_SGI_color_table
117 Adds additional color tables to the glDraw/Read/CopyPixels paths.
118
Brian Paulad081082000-05-04 13:50:33 +0000119GL_EXT_histogram
120 Compute histograms for glDraw/Read/CopyPixels.
121
Brian Paulf2fc19d2000-05-22 18:46:52 +0000122GL_EXT_blend_func_separate
123 This is the same as GL_INGR_blend_func_separate.
124
Brian Paulae01d082000-07-05 16:05:44 +0000125GL_ARB_texture_cube_mapping
126 6-face cube mapping, nicer than sphere mapping
127
128GL_EXT_texture_env_combine
129 For advanced texture environment effects.
130
131
Brian Paulf2fc19d2000-05-22 18:46:52 +0000132Documentation for all these functions can be found at
133http://oss.sgi.com/projects/ogl-sample/registry/
134
Brian Paul0bb0c7c2000-04-17 15:14:33 +0000135
Brian Paula518b472000-04-07 17:07:32 +0000136
137GLX_SGI_make_current_read functionality
138---------------------------------------
139
140The functionality of this extension is needed for GLX 1.3 (and required
141for the Linux/OpenGL standards base).
142
143Implementing this function required a **DEVICE DRIVER CHANGE**.
144The old SetBuffer() function has been replaced by SetReadBuffer() and
145SetDrawBuffer(). All device drivers will have to be updated because
146of this change.
147
148The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
149The xdemos/wincopy.c program demonstrates it.
150
151
152
153Image-related code changes
154--------------------------
155
156The imaging path code used by glDrawPixels, glTexImage[123]D,
157glTexSubImage[123], etc has been rewritten. It's now faster,
158uses less memory and has several bug fixes. This work was
159actually started in Mesa 3.1 with the glTexImage paths but has now
160been carried over to glDrawPixels as well.
161
162
163
164Device driver interface changes
165-------------------------------
166
167Added new functions for hardware stencil buffer support:
168 WriteStencilSpan
169 ReadStencilSpan
170 WriteStencilPixels
171 ReadStencilPixels
172
173
174Removed old depth buffer functions:
175 AllocDepthBuffer
176 DepthTestSpan
177 DepthTestPixels
178 ReadDepthSpanFloat
179 ReadDepthSpanInt
180
181
182Added new depth buffer functions:
183 WriteDepthSpan
184 ReadDepthSpan
185 WriteDepthPixels
186 ReadDepthPixels
187
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.
191
192
193New 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
197 copy isn't made.
198
199Misc changes
200 TexEnv now takes a target argument
201 Removed UseGlobalTexturePalette (use Enable function instead)
202
203
204Also added
205 ReadPixels
206 CopyPixels
207
208
209The SetBufffer function has been replaced by SetDrawBuffer and
210SetReadBuffer functions. This lets core Mesa independently
211specify which buffer is to be used for reading and which for
212drawing.
213
214The Clear function's mask parameter has changed. Instead of
215mask being the flags specified by the user to glClear, the
216mask is now a bitmask of the DD_*_BIT flags in dd.h. Now
217multiple color buffers can be specified for clearing (ala
218glDrawBuffers). The driver's Clear function must also
219check the glColorMask glIndexMask, and glStencilMask settings
220and do the right thing. See the X/Mesa, OS/Mesa, or FX/Mesa
221drivers for examples.
222
223
224The depth buffer changes shouldn't be hard to make for existing
225drivers. In fact, it should simply the code. Be careful with
226the depthBits value passed to gl_create_context(). 1 is a bad
227value! It should normally be 0, 16, 24, or 32.
228
229
230gl_create_framebuffer() takes new arguments which explicitly tell
231core Mesa which ancillary buffers (depth, stencil, accum, alpha)
232should be implemented in software. Mesa hardware drivers should
233carefully set these flags depending on which buffers are in the
234graphics card.
235
236
237
238Internal constants
239------------------
240
241Point and line size range and granularity limits are now stored
242in the gl_constants struct, which is the Const member of GLcontext.
243The limits are initialized from values in config.h but may be
244overridden by device drivers to reflect the limits of that driver's
245hardware.
246
247Also added constants for NumAuxBuffers and SubPixelBits.
248
249
250
Brian Paulebc22c02000-07-21 16:26:41 +0000251OpenGL Conformance
252------------------
253
254Mesa now passes all the OpenGL 1.1 conformance tests, except for
255antialiased lines. AA lines fail on some, but not all, the tests.
256In order to fix the remaining failures, a new AA line algorithm will
257be needed (which computes coverage values for end-point fragments).
258This will be done for Mesa 3.5/3.6.
259
260
261
262OpenGL 1.2 GL_ARB_imaging subset
263--------------------------------
264
265Mesa 3.3 implements all the features of GL_ARB_imaging except for
266image convolution. This will (hopefully) be done for Mesa 3.5/3.6.
267
268
Brian Paula518b472000-04-07 17:07:32 +0000269
270----------------------------------------------------------------------