xref: /aosp_15_r20/external/mesa3d/docs/_extra/relnotes/3.3 (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker
2*61046927SAndroid Build Coastguard Worker                         Mesa 3.3 release notes
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Worker                             July 21, 2000
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Worker                             PLEASE READ!!!!
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Worker
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard WorkerIntroduction
11*61046927SAndroid Build Coastguard Worker------------
12*61046927SAndroid Build Coastguard Worker
13*61046927SAndroid Build Coastguard WorkerMesa uses an even/odd version number scheme like the Linux kernel.
14*61046927SAndroid Build Coastguard WorkerOdd numbered versions (such as 3.3) designate new developmental releases.
15*61046927SAndroid Build Coastguard WorkerEven numbered versions (such as 3.2.1) designate stable releases.
16*61046927SAndroid Build Coastguard Worker
17*61046927SAndroid Build Coastguard WorkerMesa 3.3 has a undergone many internal changes since version 3.2
18*61046927SAndroid Build Coastguard Workerand features a lot of new extensions.  3.3 is expected to be pretty
19*61046927SAndroid Build Coastguard Workerstable, but perhaps not as stable as 3.2 which has been used by
20*61046927SAndroid Build Coastguard Workerthousands of users over the past months.
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard WorkerEveryone is encouraged to try Mesa 3.3.  Bugs should be reported to
23*61046927SAndroid Build Coastguard Workerthe Mesa bug database on www.sourceforge.net.
24*61046927SAndroid Build Coastguard Worker
25*61046927SAndroid Build Coastguard Worker
26*61046927SAndroid Build Coastguard Worker
27*61046927SAndroid Build Coastguard WorkerHeader file / GLenum changes
28*61046927SAndroid Build Coastguard Worker----------------------------
29*61046927SAndroid Build Coastguard Worker
30*61046927SAndroid Build Coastguard WorkerThe gl.h and glu.h headers now use #defines to define all GL_* tokens
31*61046927SAndroid Build Coastguard Workerinstead of C-language enums.  This change improves Mesa/OpenGL
32*61046927SAndroid Build Coastguard Workerinteroperability.
33*61046927SAndroid Build Coastguard Worker
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard Worker
36*61046927SAndroid Build Coastguard WorkerNew API dispatch code
37*61046927SAndroid Build Coastguard Worker---------------------
38*61046927SAndroid Build Coastguard Worker
39*61046927SAndroid Build Coastguard WorkerThe core Mesa gl* functions are now implemented with a new dispatch
40*61046927SAndroid Build Coastguard Worker(jump table) which will allow simultaneous direct/indirect rendering.
41*61046927SAndroid Build Coastguard Worker
42*61046927SAndroid Build Coastguard WorkerThe code is found in the glapi*.[ch] files.
43*61046927SAndroid Build Coastguard Worker
44*61046927SAndroid Build Coastguard WorkerOf interest:  the actual "glFooBar" functions are generated with
45*61046927SAndroid Build Coastguard Workertemplatized code defined in glapitemp.h and included by glapi.c
46*61046927SAndroid Build Coastguard WorkerThe glapitemp.h template should be reusable for all sorts of OpenGL
47*61046927SAndroid Build Coastguard Workerprojects.
48*61046927SAndroid Build Coastguard Worker
49*61046927SAndroid Build Coastguard WorkerThe new dispatch code has also optimized with x86 assembly code.
50*61046927SAndroid Build Coastguard WorkerThis optimization eliminates copying the function arguments during
51*61046927SAndroid Build Coastguard Workerdispatch.
52*61046927SAndroid Build Coastguard Worker
53*61046927SAndroid Build Coastguard Worker
54*61046927SAndroid Build Coastguard Worker
55*61046927SAndroid Build Coastguard WorkerNew thread support
56*61046927SAndroid Build Coastguard Worker------------------
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard WorkerThread support in Mesa has been rewritten.  The glthread.[ch] files
59*61046927SAndroid Build Coastguard Workerreplace mthreads.[ch].  Thread safety is always enabled (on platforms
60*61046927SAndroid Build Coastguard Workerwhich support threads, that is).  There is virtually no performance
61*61046927SAndroid Build Coastguard Workerpenalty for typical single-thread applications.  See the glapi.c
62*61046927SAndroid Build Coastguard Workerfile for details.
63*61046927SAndroid Build Coastguard Worker
64*61046927SAndroid Build Coastguard WorkerThe Xlib driver (XMesa) is now thread-safe as well.  Be sure to
65*61046927SAndroid Build Coastguard Workercall XInitThreads() in your app first.  See the xdemos/glthreads.c
66*61046927SAndroid Build Coastguard Workerdemo for an example.
67*61046927SAndroid Build Coastguard Worker
68*61046927SAndroid Build Coastguard Worker
69*61046927SAndroid Build Coastguard Worker
70*61046927SAndroid Build Coastguard WorkerMake configuration changes
71*61046927SAndroid Build Coastguard Worker--------------------------
72*61046927SAndroid Build Coastguard Worker
73*61046927SAndroid Build Coastguard WorkerIf you use the old-style (non GNU automake) method to build Mesa note
74*61046927SAndroid Build Coastguard Workerthat several of the configuration names have changed:
75*61046927SAndroid Build Coastguard Worker
76*61046927SAndroid Build Coastguard Worker   Old name        New name
77*61046927SAndroid Build Coastguard Worker   -------------   ----------------
78*61046927SAndroid Build Coastguard Worker   linux-elf       linux
79*61046927SAndroid Build Coastguard Worker   linux           linux-static
80*61046927SAndroid Build Coastguard Worker   linux-386-elf   linux-386
81*61046927SAndroid Build Coastguard Worker   linux-386       linux-386-static
82*61046927SAndroid Build Coastguard Worker   etc.
83*61046927SAndroid Build Coastguard Worker
84*61046927SAndroid Build Coastguard Worker
85*61046927SAndroid Build Coastguard Worker
86*61046927SAndroid Build Coastguard WorkerNew extensions
87*61046927SAndroid Build Coastguard Worker--------------
88*61046927SAndroid Build Coastguard Worker
89*61046927SAndroid Build Coastguard WorkerGL_ARB_transpose_matrix
90*61046927SAndroid Build Coastguard Worker	Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
91*61046927SAndroid Build Coastguard Worker        functions.
92*61046927SAndroid Build Coastguard Worker
93*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_cube_map
94*61046927SAndroid Build Coastguard Worker	For cube-based reflection mapping.
95*61046927SAndroid Build Coastguard Worker
96*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_add_env
97*61046927SAndroid Build Coastguard Worker	Adds GL_ADD texture environment mode.
98*61046927SAndroid Build Coastguard Worker	See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
99*61046927SAndroid Build Coastguard Worker
100*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_lod_bias
101*61046927SAndroid Build Coastguard Worker	Allows mipmapped texture blurring and sharpening.
102*61046927SAndroid Build Coastguard Worker
103*61046927SAndroid Build Coastguard WorkerGLX_EXT_visual_rating extension
104*61046927SAndroid Build Coastguard Worker	This extension has no effect in stand-alone Mesa (used for DRI).
105*61046927SAndroid Build Coastguard Worker
106*61046927SAndroid Build Coastguard WorkerGL_HP_occlusion_test
107*61046927SAndroid Build Coastguard Worker	Used for bounding box occlusion testing (see demos/occlude.c).
108*61046927SAndroid Build Coastguard Worker
109*61046927SAndroid Build Coastguard WorkerGL_SGIX_pixel_texture / GL_SGIS_pixel_texture
110*61046927SAndroid Build Coastguard Worker	Lets glDraw/CopyPixels draw a texture coordinate image.
111*61046927SAndroid Build Coastguard Worker
112*61046927SAndroid Build Coastguard WorkerGL_SGI_color_matrix
113*61046927SAndroid Build Coastguard Worker	Adds a color matrix and another set of scale and bias parameters
114*61046927SAndroid Build Coastguard Worker	to the glDraw/CopyPixels paths.
115*61046927SAndroid Build Coastguard Worker
116*61046927SAndroid Build Coastguard WorkerGL_SGI_color_table
117*61046927SAndroid Build Coastguard Worker	Adds additional color tables to the glDraw/Read/CopyPixels paths.
118*61046927SAndroid Build Coastguard Worker
119*61046927SAndroid Build Coastguard WorkerGL_EXT_histogram
120*61046927SAndroid Build Coastguard Worker	Compute histograms for glDraw/Read/CopyPixels.
121*61046927SAndroid Build Coastguard Worker
122*61046927SAndroid Build Coastguard WorkerGL_EXT_blend_func_separate
123*61046927SAndroid Build Coastguard Worker	This is the same as GL_INGR_blend_func_separate.
124*61046927SAndroid Build Coastguard Worker
125*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_cube_mapping
126*61046927SAndroid Build Coastguard Worker	6-face cube mapping, nicer than sphere mapping
127*61046927SAndroid Build Coastguard Worker
128*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_env_combine
129*61046927SAndroid Build Coastguard Worker	For advanced texture environment effects.
130*61046927SAndroid Build Coastguard Worker
131*61046927SAndroid Build Coastguard Worker
132*61046927SAndroid Build Coastguard WorkerDocumentation for all these functions can be found at
133*61046927SAndroid Build Coastguard Workerhttp://oss.sgi.com/projects/ogl-sample/registry/
134*61046927SAndroid Build Coastguard Worker
135*61046927SAndroid Build Coastguard Worker
136*61046927SAndroid Build Coastguard Worker
137*61046927SAndroid Build Coastguard WorkerGLX_SGI_make_current_read functionality
138*61046927SAndroid Build Coastguard Worker---------------------------------------
139*61046927SAndroid Build Coastguard Worker
140*61046927SAndroid Build Coastguard WorkerThe functionality of this extension is needed for GLX 1.3 (and required
141*61046927SAndroid Build Coastguard Workerfor the Linux/OpenGL standards base).
142*61046927SAndroid Build Coastguard Worker
143*61046927SAndroid Build Coastguard WorkerImplementing this function required a **DEVICE DRIVER CHANGE**.
144*61046927SAndroid Build Coastguard WorkerThe old SetBuffer() function has been replaced by SetReadBuffer() and
145*61046927SAndroid Build Coastguard WorkerSetDrawBuffer().  All device drivers will have to be updated because
146*61046927SAndroid Build Coastguard Workerof this change.
147*61046927SAndroid Build Coastguard Worker
148*61046927SAndroid Build Coastguard WorkerThe new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
149*61046927SAndroid Build Coastguard WorkerThe xdemos/wincopy.c program demonstrates it.
150*61046927SAndroid Build Coastguard Worker
151*61046927SAndroid Build Coastguard Worker
152*61046927SAndroid Build Coastguard Worker
153*61046927SAndroid Build Coastguard WorkerImage-related code changes
154*61046927SAndroid Build Coastguard Worker--------------------------
155*61046927SAndroid Build Coastguard Worker
156*61046927SAndroid Build Coastguard WorkerThe imaging path code used by glDrawPixels, glTexImage[123]D,
157*61046927SAndroid Build Coastguard WorkerglTexSubImage[123], etc has been rewritten.  It's now faster,
158*61046927SAndroid Build Coastguard Workeruses less memory and has several bug fixes.  This work was
159*61046927SAndroid Build Coastguard Workeractually started in Mesa 3.1 with the glTexImage paths but has now
160*61046927SAndroid Build Coastguard Workerbeen carried over to glDrawPixels as well.
161*61046927SAndroid Build Coastguard Worker
162*61046927SAndroid Build Coastguard Worker
163*61046927SAndroid Build Coastguard Worker
164*61046927SAndroid Build Coastguard WorkerDevice driver interface changes
165*61046927SAndroid Build Coastguard Worker-------------------------------
166*61046927SAndroid Build Coastguard Worker
167*61046927SAndroid Build Coastguard WorkerAdded new functions for hardware stencil buffer support:
168*61046927SAndroid Build Coastguard Worker   WriteStencilSpan
169*61046927SAndroid Build Coastguard Worker   ReadStencilSpan
170*61046927SAndroid Build Coastguard Worker   WriteStencilPixels
171*61046927SAndroid Build Coastguard Worker   ReadStencilPixels
172*61046927SAndroid Build Coastguard Worker
173*61046927SAndroid Build Coastguard Worker
174*61046927SAndroid Build Coastguard WorkerRemoved old depth buffer functions:
175*61046927SAndroid Build Coastguard Worker   AllocDepthBuffer
176*61046927SAndroid Build Coastguard Worker   DepthTestSpan
177*61046927SAndroid Build Coastguard Worker   DepthTestPixels
178*61046927SAndroid Build Coastguard Worker   ReadDepthSpanFloat
179*61046927SAndroid Build Coastguard Worker   ReadDepthSpanInt
180*61046927SAndroid Build Coastguard Worker
181*61046927SAndroid Build Coastguard Worker
182*61046927SAndroid Build Coastguard WorkerAdded new depth buffer functions:
183*61046927SAndroid Build Coastguard Worker   WriteDepthSpan
184*61046927SAndroid Build Coastguard Worker   ReadDepthSpan
185*61046927SAndroid Build Coastguard Worker   WriteDepthPixels
186*61046927SAndroid Build Coastguard Worker   ReadDepthPixels
187*61046927SAndroid Build Coastguard Worker
188*61046927SAndroid Build Coastguard Worker   These functions always read/write 32-bit GLuints.  This will allow
189*61046927SAndroid Build Coastguard Worker   drivers to have anywhere from 0 to 32-bit Z buffers without
190*61046927SAndroid Build Coastguard Worker   recompiling for 16 vs 32 bits as was previously needed.
191*61046927SAndroid Build Coastguard Worker
192*61046927SAndroid Build Coastguard Worker
193*61046927SAndroid Build Coastguard WorkerNew texture image functions
194*61046927SAndroid Build Coastguard Worker   The entire interface for texture image specification has been updated.
195*61046927SAndroid Build Coastguard Worker   With the new functions, it's optional for Mesa to keep an internal copy
196*61046927SAndroid Build Coastguard Worker   of all textures.  Texture download should be a lot faster when the extra
197*61046927SAndroid Build Coastguard Worker   copy isn't made.
198*61046927SAndroid Build Coastguard Worker
199*61046927SAndroid Build Coastguard WorkerMisc changes
200*61046927SAndroid Build Coastguard Worker   TexEnv now takes a target argument
201*61046927SAndroid Build Coastguard Worker   Removed UseGlobalTexturePalette (use Enable function instead)
202*61046927SAndroid Build Coastguard Worker
203*61046927SAndroid Build Coastguard Worker
204*61046927SAndroid Build Coastguard WorkerAlso added
205*61046927SAndroid Build Coastguard Worker   ReadPixels
206*61046927SAndroid Build Coastguard Worker   CopyPixels
207*61046927SAndroid Build Coastguard Worker
208*61046927SAndroid Build Coastguard Worker
209*61046927SAndroid Build Coastguard WorkerThe SetBufffer function has been replaced by SetDrawBuffer and
210*61046927SAndroid Build Coastguard WorkerSetReadBuffer functions.  This lets core Mesa independently
211*61046927SAndroid Build Coastguard Workerspecify which buffer is to be used for reading and which for
212*61046927SAndroid Build Coastguard Workerdrawing.
213*61046927SAndroid Build Coastguard Worker
214*61046927SAndroid Build Coastguard WorkerThe Clear function's mask parameter has changed.  Instead of
215*61046927SAndroid Build Coastguard Workermask being the flags specified by the user to glClear, the
216*61046927SAndroid Build Coastguard Workermask is now a bitmask of the DD_*_BIT flags in dd.h.  Now
217*61046927SAndroid Build Coastguard Workermultiple color buffers can be specified for clearing (ala
218*61046927SAndroid Build Coastguard WorkerglDrawBuffers).  The driver's Clear function must also
219*61046927SAndroid Build Coastguard Workercheck the glColorMask glIndexMask, and glStencilMask settings
220*61046927SAndroid Build Coastguard Workerand do the right thing.  See the X/Mesa, OS/Mesa, or FX/Mesa
221*61046927SAndroid Build Coastguard Workerdrivers for examples.
222*61046927SAndroid Build Coastguard Worker
223*61046927SAndroid Build Coastguard Worker
224*61046927SAndroid Build Coastguard WorkerThe depth buffer changes shouldn't be hard to make for existing
225*61046927SAndroid Build Coastguard Workerdrivers.  In fact, it should simply the code.  Be careful with
226*61046927SAndroid Build Coastguard Workerthe depthBits value passed to gl_create_context().  1 is a bad
227*61046927SAndroid Build Coastguard Workervalue!  It should normally be 0, 16, 24, or 32.
228*61046927SAndroid Build Coastguard Worker
229*61046927SAndroid Build Coastguard Worker
230*61046927SAndroid Build Coastguard Workergl_create_framebuffer() takes new arguments which explicitly tell
231*61046927SAndroid Build Coastguard Workercore Mesa which ancillary buffers (depth, stencil, accum, alpha)
232*61046927SAndroid Build Coastguard Workershould be implemented in software.  Mesa hardware drivers should
233*61046927SAndroid Build Coastguard Workercarefully set these flags depending on which buffers are in the
234*61046927SAndroid Build Coastguard Workergraphics card.
235*61046927SAndroid Build Coastguard Worker
236*61046927SAndroid Build Coastguard Worker
237*61046927SAndroid Build Coastguard Worker
238*61046927SAndroid Build Coastguard WorkerInternal constants
239*61046927SAndroid Build Coastguard Worker------------------
240*61046927SAndroid Build Coastguard Worker
241*61046927SAndroid Build Coastguard WorkerPoint and line size range and granularity limits are now stored
242*61046927SAndroid Build Coastguard Workerin the gl_constants struct, which is the Const member of GLcontext.
243*61046927SAndroid Build Coastguard WorkerThe limits are initialized from values in config.h but may be
244*61046927SAndroid Build Coastguard Workeroverridden by device drivers to reflect the limits of that driver's
245*61046927SAndroid Build Coastguard Workerhardware.
246*61046927SAndroid Build Coastguard Worker
247*61046927SAndroid Build Coastguard WorkerAlso added constants for NumAuxBuffers and SubPixelBits.
248*61046927SAndroid Build Coastguard Worker
249*61046927SAndroid Build Coastguard Worker
250*61046927SAndroid Build Coastguard Worker
251*61046927SAndroid Build Coastguard WorkerOpenGL Conformance
252*61046927SAndroid Build Coastguard Worker------------------
253*61046927SAndroid Build Coastguard Worker
254*61046927SAndroid Build Coastguard WorkerMesa now passes all the OpenGL 1.1 conformance tests, except for
255*61046927SAndroid Build Coastguard Workerantialiased lines.  AA lines fail on some, but not all, the tests.
256*61046927SAndroid Build Coastguard WorkerIn order to fix the remaining failures, a new AA line algorithm will
257*61046927SAndroid Build Coastguard Workerbe needed (which computes coverage values for end-point fragments).
258*61046927SAndroid Build Coastguard WorkerThis will be done for Mesa 3.5/3.6.
259*61046927SAndroid Build Coastguard Worker
260*61046927SAndroid Build Coastguard Worker
261*61046927SAndroid Build Coastguard Worker
262*61046927SAndroid Build Coastguard WorkerOpenGL 1.2 GL_ARB_imaging subset
263*61046927SAndroid Build Coastguard Worker--------------------------------
264*61046927SAndroid Build Coastguard Worker
265*61046927SAndroid Build Coastguard WorkerMesa 3.3 implements all the features of GL_ARB_imaging except for
266*61046927SAndroid Build Coastguard Workerimage convolution.  This will (hopefully) be done for Mesa 3.5/3.6.
267*61046927SAndroid Build Coastguard Worker
268*61046927SAndroid Build Coastguard Worker
269*61046927SAndroid Build Coastguard Worker
270*61046927SAndroid Build Coastguard Worker----------------------------------------------------------------------
271