xref: /aosp_15_r20/external/mesa3d/docs/_extra/relnotes/5.1 (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker
2*61046927SAndroid Build Coastguard Worker                            Mesa 5.1 release notes
3*61046927SAndroid Build Coastguard Worker
4*61046927SAndroid Build Coastguard Worker                              December 17, 2003
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 WorkerEven-numbered versions (such as 5.0) designate stable releases.
15*61046927SAndroid Build Coastguard WorkerOdd-numbered versions (such as 5.1) designate new developmental releases.
16*61046927SAndroid Build Coastguard Worker
17*61046927SAndroid Build Coastguard Worker
18*61046927SAndroid Build Coastguard WorkerBug fixes
19*61046927SAndroid Build Coastguard Worker---------
20*61046927SAndroid Build Coastguard WorkerSee the VERSIONS file for a list of bugs fixed in this release.
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker
23*61046927SAndroid Build Coastguard Worker
24*61046927SAndroid Build Coastguard WorkerNew Features in Mesa 5.1
25*61046927SAndroid Build Coastguard Worker------------------------
26*61046927SAndroid Build Coastguard Worker
27*61046927SAndroid Build Coastguard WorkerGL_ARB_vertex_program / GL_ARB_fragment_program
28*61046927SAndroid Build Coastguard Worker   Michal Krol and Karl Rasche implemented these extensions.  Thanks!
29*61046927SAndroid Build Coastguard Worker   Be aware that there may be some rough edges and lurking bugs.
30*61046927SAndroid Build Coastguard Worker
31*61046927SAndroid Build Coastguard WorkerGL_ATI_texture_env_combine3 extension
32*61046927SAndroid Build Coastguard Worker   This adds a few new texture combine modes.
33*61046927SAndroid Build Coastguard Worker   Contributed by Ian Romanick.
34*61046927SAndroid Build Coastguard Worker
35*61046927SAndroid Build Coastguard WorkerGL_SGI_texture_color_table
36*61046927SAndroid Build Coastguard Worker   Adds a color table lookup to the RGBA texture path.  There's a separate
37*61046927SAndroid Build Coastguard Worker   color table for each texture unit.
38*61046927SAndroid Build Coastguard Worker   Contributed by Eric Plante.
39*61046927SAndroid Build Coastguard Worker
40*61046927SAndroid Build Coastguard WorkerGL_NV_fragment_program
41*61046927SAndroid Build Coastguard Worker   NVIDIA's fragment-level programming feature.
42*61046927SAndroid Build Coastguard Worker   Possible lurking bugs:
43*61046927SAndroid Build Coastguard Worker     - the DDX and DDY commands aren't fully tested
44*61046927SAndroid Build Coastguard Worker     - there may be bugs in the parser
45*61046927SAndroid Build Coastguard Worker     - the TEX and TXP instructions both do perspective correction
46*61046927SAndroid Build Coastguard Worker     - the pack/unpack instructions may not be correct
47*61046927SAndroid Build Coastguard Worker
48*61046927SAndroid Build Coastguard WorkerGL_EXT_depth_bounds_test
49*61046927SAndroid Build Coastguard Worker   This extension adds a scissor-like test for the Z axis.  It's used to
50*61046927SAndroid Build Coastguard Worker   optimize stencil-volume shadow algorithms.
51*61046927SAndroid Build Coastguard Worker
52*61046927SAndroid Build Coastguard WorkerGL_NV_light_max_exponent
53*61046927SAndroid Build Coastguard Worker   Lifts the 128 limit for max light exponent.
54*61046927SAndroid Build Coastguard Worker
55*61046927SAndroid Build Coastguard WorkerGL_EXT_texture_rectangle
56*61046927SAndroid Build Coastguard Worker   Identical to GL_NV_texture_rectangle
57*61046927SAndroid Build Coastguard Worker
58*61046927SAndroid Build Coastguard WorkerGL_ARB_occlusion_query
59*61046927SAndroid Build Coastguard Worker   Useful for visibility-based culling.
60*61046927SAndroid Build Coastguard Worker
61*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_non_power_of_two
62*61046927SAndroid Build Coastguard Worker   Removes the restriction that texture dimensions must be powers of two.
63*61046927SAndroid Build Coastguard Worker
64*61046927SAndroid Build Coastguard WorkerGL_ARB_vertex_buffer_object
65*61046927SAndroid Build Coastguard Worker   Allows server-side vertex arrays, optimized host/card data transfers, etc.
66*61046927SAndroid Build Coastguard Worker
67*61046927SAndroid Build Coastguard WorkerGL_ARB_point_sprite
68*61046927SAndroid Build Coastguard Worker   ARB-approved version of GL_NV_point_sprite.  Basically allows textures
69*61046927SAndroid Build Coastguard Worker   to be applied to points.
70*61046927SAndroid Build Coastguard Worker
71*61046927SAndroid Build Coastguard WorkerGL_IBM_multimode_draw_arrays
72*61046927SAndroid Build Coastguard Worker   Allows multiple vertex arrays to be drawn with one call, including arrays
73*61046927SAndroid Build Coastguard Worker   of different types of primitives.
74*61046927SAndroid Build Coastguard Worker
75*61046927SAndroid Build Coastguard WorkerGL_SUN_multi_draw_arrays
76*61046927SAndroid Build Coastguard Worker   An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
77*61046927SAndroid Build Coastguard Worker
78*61046927SAndroid Build Coastguard WorkerFaster glDrawPixels / glCopyPixels in X11 driver
79*61046927SAndroid Build Coastguard Worker   If your X screen is 32bpp, glDrawPixels to the front color buffer will
80*61046927SAndroid Build Coastguard Worker   be accelerated (via XPutImage()) if the image format is GL_BGRA and the
81*61046927SAndroid Build Coastguard Worker   type is GL_UNSIGNED_BYTE.  No raster operations, such as depth test,
82*61046927SAndroid Build Coastguard Worker   blend, fog, etc. can be enabled.
83*61046927SAndroid Build Coastguard Worker
84*61046927SAndroid Build Coastguard Worker   If your X screen is 16bpp, glDrawPixels to the front color buffer will
85*61046927SAndroid Build Coastguard Worker   be accelerated (via XPutImage()) if the image format is GL_RGB and the
86*61046927SAndroid Build Coastguard Worker   type is GL_UNSIGNED_SHORT_5_6_5.  No raster operations, such as depth
87*61046927SAndroid Build Coastguard Worker   test, blend, fog, etc. can be enabled.
88*61046927SAndroid Build Coastguard Worker
89*61046927SAndroid Build Coastguard Worker   glCopyPixels() calls for the front color buffer will be accelerated
90*61046927SAndroid Build Coastguard Worker   (via XCopyArea()) if no raster operations, such as depth test, blend,
91*61046927SAndroid Build Coastguard Worker   fog, pixel zoom, etc. are enabled.
92*61046927SAndroid Build Coastguard Worker
93*61046927SAndroid Build Coastguard Worker   The speed-up over typical software rendering is a factor of 10 for
94*61046927SAndroid Build Coastguard Worker   glDrawPixels and 100 for glCopyPixels.
95*61046927SAndroid Build Coastguard Worker
96*61046927SAndroid Build Coastguard Worker
97*61046927SAndroid Build Coastguard WorkerWith the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
98*61046927SAndroid Build Coastguard WorkerGL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
99*61046927SAndroid Build Coastguard Workerall the new features of OpenGL 1.5.  Mesa 6.0 (the next stable release)
100*61046927SAndroid Build Coastguard Workerwill advertise GL_VERSION = "1.5".
101*61046927SAndroid Build Coastguard Worker
102*61046927SAndroid Build Coastguard Worker
103*61046927SAndroid Build Coastguard Worker
104*61046927SAndroid Build Coastguard WorkerVertex/Fragment program debugger
105*61046927SAndroid Build Coastguard Worker--------------------------------
106*61046927SAndroid Build Coastguard Worker
107*61046927SAndroid Build Coastguard WorkerGL_MESA_program_debug is an experimental extension to support
108*61046927SAndroid Build Coastguard Workerinteractive debugging of vertex and fragment programs.  See the
109*61046927SAndroid Build Coastguard Workerdocs/specs/OLD/MESA_program_debug.spec file for details.
110*61046927SAndroid Build Coastguard Worker
111*61046927SAndroid Build Coastguard WorkerThe bulk of the vertex/fragment program debugger is implemented
112*61046927SAndroid Build Coastguard Workeroutside of Mesa.  The GL_MESA_program_debug extension just has minimal
113*61046927SAndroid Build Coastguard Workerhooks for stopping running programs and inspecting programs.
114*61046927SAndroid Build Coastguard Worker
115*61046927SAndroid Build Coastguard WorkerThe progs/tests/debugger.c (only in CVS) program is an example of how
116*61046927SAndroid Build Coastguard Workerthe extension can be used.  Presently, the debugger code and demo code
117*61046927SAndroid Build Coastguard Workeris in the same file.  Eventually the debugger code should be moved
118*61046927SAndroid Build Coastguard Workerinto a reusable module.
119*61046927SAndroid Build Coastguard Worker
120*61046927SAndroid Build Coastguard WorkerAs it is now, the demo lets you set breakpoings in vertex/fragment
121*61046927SAndroid Build Coastguard Workerprograms, single step, and print intermediate register values.  It's
122*61046927SAndroid Build Coastguard Workerbasically just a proof of concept.
123*61046927SAndroid Build Coastguard Worker
124*61046927SAndroid Build Coastguard Worker
125*61046927SAndroid Build Coastguard Worker
126*61046927SAndroid Build Coastguard WorkerDirectory tree reorganization
127*61046927SAndroid Build Coastguard Worker-----------------------------
128*61046927SAndroid Build Coastguard Worker
129*61046927SAndroid Build Coastguard WorkerThe directory structure for Mesa has been overhauled to improve its layout.
130*61046927SAndroid Build Coastguard WorkerAll source code for Mesa, GLU, GLUT, etc is now under the src/ directory
131*61046927SAndroid Build Coastguard Workerin appropriate subdirectories.
132*61046927SAndroid Build Coastguard Worker
133*61046927SAndroid Build Coastguard WorkerThe Mesa source code and drivers has been reorganized under src/mesa/.
134*61046927SAndroid Build Coastguard Worker
135*61046927SAndroid Build Coastguard WorkerAll demonstration programs and tests are now in subdirectories under progs/.
136*61046927SAndroid Build Coastguard Worker
137*61046927SAndroid Build Coastguard Worker
138*61046927SAndroid Build Coastguard Worker
139*61046927SAndroid Build Coastguard WorkerBuild System Changes
140*61046927SAndroid Build Coastguard Worker--------------------
141*61046927SAndroid Build Coastguard Worker
142*61046927SAndroid Build Coastguard WorkerThe GNU automake/autoconf support has been removed.  As it was, it seldom
143*61046927SAndroid Build Coastguard Workerworked on anything but Linux.  The Mesa developers aren't big fans of
144*61046927SAndroid Build Coastguard Workerautomake/autoconf/libtool and didn't have the time to maintain it.
145*61046927SAndroid Build Coastguard WorkerIf someone wants to contribute new automake/autoconf support (and is
146*61046927SAndroid Build Coastguard Workerwilling to maintain it), it may be re-incorporated into Mesa, subject
147*61046927SAndroid Build Coastguard Workerto some requirements.
148*61046927SAndroid Build Coastguard Worker
149*61046927SAndroid Build Coastguard WorkerThe "old style" makefile system has been updated:
150*61046927SAndroid Build Coastguard Worker   1. Make-config has been trimmed down to fewer, modern configurations.
151*61046927SAndroid Build Coastguard Worker   2. Most of the bin/mklib.* scripts have been rolled into a new "mklib"
152*61046927SAndroid Build Coastguard Worker      script that works on all sorts of systems.  There are probably some
153*61046927SAndroid Build Coastguard Worker      bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5.
154*61046927SAndroid Build Coastguard Worker      Improvements/contributes are greatly appreciated.
155*61046927SAndroid Build Coastguard Worker   3. The Makefile.X11 files have been cleaned up in various ways
156*61046927SAndroid Build Coastguard Worker
157*61046927SAndroid Build Coastguard Worker
158*61046927SAndroid Build Coastguard Worker
159*61046927SAndroid Build Coastguard WorkerSource File Changes
160*61046927SAndroid Build Coastguard Worker-------------------
161*61046927SAndroid Build Coastguard Worker
162*61046927SAndroid Build Coastguard WorkerThe mmath.[ch] files are obsolete.  Their contents have been moved
163*61046927SAndroid Build Coastguard Workerinto the imports.[ch] and macros.[ch] files.
164*61046927SAndroid Build Coastguard Worker
165*61046927SAndroid Build Coastguard WorkerThe files related to vertex and fragment programming have changed.
166*61046927SAndroid Build Coastguard WorkerOld files:
167*61046927SAndroid Build Coastguard Worker	vpexec.[ch]
168*61046927SAndroid Build Coastguard Worker	vpparse.[ch]
169*61046927SAndroid Build Coastguard Worker	vpstate.[ch]
170*61046927SAndroid Build Coastguard WorkerNew files:
171*61046927SAndroid Build Coastguard Worker	program.[ch]              - generic ARB/NV program code
172*61046927SAndroid Build Coastguard Worker	arbprogram.[ch]           - ARB program API functions
173*61046927SAndroid Build Coastguard Worker	arbfragparse.[ch]         - ARB fragment program parsing
174*61046927SAndroid Build Coastguard Worker	arbvertparse.[ch]         - ARB vertex program parsing
175*61046927SAndroid Build Coastguard Worker	arbparse.[ch]             - ARB vertex/fragment parsing
176*61046927SAndroid Build Coastguard Worker	arbparse_syn.h            - vertex/fragment program syntax
177*61046927SAndroid Build Coastguard Worker	nvprogram.[ch]            - NV program API functions
178*61046927SAndroid Build Coastguard Worker	nvvertprog.h              - NV vertex program definitions
179*61046927SAndroid Build Coastguard Worker	nvfragprog.h              - NV fragment program definitions
180*61046927SAndroid Build Coastguard Worker	nvvertparse.[ch]          - NV vertex program parser
181*61046927SAndroid Build Coastguard Worker	nvfragparse.[ch]          - NV fragment program parser
182*61046927SAndroid Build Coastguard Worker	nvvertexec.[ch]           - NV vertex program execution
183*61046927SAndroid Build Coastguard Worker	swrast/s_nvfragprog.[ch]  - NV fragment program execution
184*61046927SAndroid Build Coastguard Worker
185*61046927SAndroid Build Coastguard WorkerThe files related to per-vertex handling have changed.
186*61046927SAndroid Build Coastguard WorkerOld files:
187*61046927SAndroid Build Coastguard Worker	tnl/t_eval_api.c          - old per-vertex code
188*61046927SAndroid Build Coastguard Worker	tnl/t_imm_alloc.c         - old per-vertex code
189*61046927SAndroid Build Coastguard Worker	tnl/t_imm_api.c           - old per-vertex code
190*61046927SAndroid Build Coastguard Worker	tnl/t_imm_debug.c         - old per-vertex code
191*61046927SAndroid Build Coastguard Worker	tnl/t_imm_dlist.c         - old per-vertex code
192*61046927SAndroid Build Coastguard Worker	tnl/t_imm_elt.c           - old per-vertex code
193*61046927SAndroid Build Coastguard Worker	tnl/t_imm_eval.c          - old per-vertex code
194*61046927SAndroid Build Coastguard Worker	tnl/t_imm_exec.c          - old per-vertex code
195*61046927SAndroid Build Coastguard Worker	tnl/t_imm_fixup.c         - old per-vertex code
196*61046927SAndroid Build Coastguard Worker	tnl/t_vtx_sse.c           - old per-vertex code
197*61046927SAndroid Build Coastguard Worker	tnl/t_vtx_x86.c           - old per-vertex code
198*61046927SAndroid Build Coastguard WorkerNew files:
199*61046927SAndroid Build Coastguard Worker	tnl/t_save_api.c          - new per-vertex code
200*61046927SAndroid Build Coastguard Worker	tnl/t_save_loopback.c     - new per-vertex code
201*61046927SAndroid Build Coastguard Worker	tnl/t_save_playback.c     - new per-vertex code
202*61046927SAndroid Build Coastguard Worker	tnl/t_vtx_eval.c          - old per-vertex code
203*61046927SAndroid Build Coastguard Worker
204*61046927SAndroid Build Coastguard WorkerOther new files:
205*61046927SAndroid Build Coastguard Worker	bufferobj.[ch]		- GL_ARB_vertex_buffer_object functions
206*61046927SAndroid Build Coastguard Worker	version.h		- defines the Mesa version info
207*61046927SAndroid Build Coastguard Worker
208*61046927SAndroid Build Coastguard WorkerOther removed files:
209*61046927SAndroid Build Coastguard Worker	swrast/s_histogram.[ch]   - moved into src/histogram.c
210*61046927SAndroid Build Coastguard Worker
211*61046927SAndroid Build Coastguard Worker
212*61046927SAndroid Build Coastguard Worker
213*61046927SAndroid Build Coastguard WorkerOther Changes
214*61046927SAndroid Build Coastguard Worker-------------
215*61046927SAndroid Build Coastguard Worker
216*61046927SAndroid Build Coastguard WorkerThe ctx->Driver.CreateTexture function has been removed - it wasn't used.
217*61046927SAndroid Build Coastguard Worker
218*61046927SAndroid Build Coastguard WorkerNew device driver hook functions:
219*61046927SAndroid Build Coastguard Worker   NewTextureObject   - used to allocate struct gl_texture_objects
220*61046927SAndroid Build Coastguard Worker   NewTextureImage    - used to allocate struct gl_texture_images
221*61046927SAndroid Build Coastguard Worker
222*61046927SAndroid Build Coastguard WorkerNew ctx->Texture._EnabledCoordUnits field:
223*61046927SAndroid Build Coastguard Worker   With the addition of GL_NV_fragment_program we may need to interpolate
224*61046927SAndroid Build Coastguard Worker   various sets of texture coordinates even when the corresponding texture
225*61046927SAndroid Build Coastguard Worker   unit is not enabled.  That is, glEnable(GL_TEXTURE_xD) may never get
226*61046927SAndroid Build Coastguard Worker   called but we still may have to interpolate texture coordinates across
227*61046927SAndroid Build Coastguard Worker   triangles so that the fragment program will get them.
228*61046927SAndroid Build Coastguard Worker   This new field indicates which sets of texture coordinates are needed.
229*61046927SAndroid Build Coastguard Worker   If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the
230*61046927SAndroid Build Coastguard Worker   same bit MUST be set in ctx->Texture._EnabledCoordUnits.
231*61046927SAndroid Build Coastguard Worker
232*61046927SAndroid Build Coastguard WorkerThe ctx->_TriangleCaps field is deprecated.
233*61046927SAndroid Build Coastguard Worker   Instead of testing the DD_* bits in _TriangleCaps, you should instead
234*61046927SAndroid Build Coastguard Worker   directly test the relevant state variables, or use one of the helper
235*61046927SAndroid Build Coastguard Worker   functions like NEED_SECONDARY_COLOR() at the bottom of context.h
236*61046927SAndroid Build Coastguard Worker   While testing _TriangleCaps bits was fast, it was kludgey, and setting
237*61046927SAndroid Build Coastguard Worker   the bits in the first place could be error prone.
238*61046927SAndroid Build Coastguard Worker
239*61046927SAndroid Build Coastguard WorkerNew vertex processing code.
240*61046927SAndroid Build Coastguard Worker   The code behind glBegin, glEnd, glVertex, glNormal, etc. has been
241*61046927SAndroid Build Coastguard Worker   totally rewritten.  It's a cleaner implementation now and should use
242*61046927SAndroid Build Coastguard Worker   less memory. (Keith)
243*61046927SAndroid Build Coastguard Worker
244*61046927SAndroid Build Coastguard Worker
245*61046927SAndroid Build Coastguard Worker
246*61046927SAndroid Build Coastguard WorkerTo Do
247*61046927SAndroid Build Coastguard Worker-----
248*61046927SAndroid Build Coastguard WorkerAdd screen-awareness to fakeglx.c
249*61046927SAndroid Build Coastguard Worker
250*61046927SAndroid Build Coastguard Worker
251*61046927SAndroid Build Coastguard Worker
252*61046927SAndroid Build Coastguard Worker
253*61046927SAndroid Build Coastguard WorkerDevice Driver Status
254*61046927SAndroid Build Coastguard Worker--------------------
255*61046927SAndroid Build Coastguard Worker
256*61046927SAndroid Build Coastguard WorkerA number of Mesa's software drivers haven't been actively maintained for
257*61046927SAndroid Build Coastguard Workersome time.  We rely on volunteers to maintain many of these drivers.
258*61046927SAndroid Build Coastguard WorkerHere's the current status of all included drivers:
259*61046927SAndroid Build Coastguard Worker
260*61046927SAndroid Build Coastguard Worker
261*61046927SAndroid Build Coastguard WorkerDriver			Status
262*61046927SAndroid Build Coastguard Worker----------------------	---------------------
263*61046927SAndroid Build Coastguard WorkerXMesa (Xlib)		implements OpenGL 1.4
264*61046927SAndroid Build Coastguard WorkerOSMesa (off-screen)	implements OpenGL 1.4
265*61046927SAndroid Build Coastguard WorkerFX (3dfx Voodoo1/2)	implements OpenGL 1.3
266*61046927SAndroid Build Coastguard WorkerSVGA			implements OpenGL 1.3
267*61046927SAndroid Build Coastguard WorkerWind River UGL		implements OpenGL 1.3
268*61046927SAndroid Build Coastguard WorkerWindows/Win32		implements OpenGL 1.4
269*61046927SAndroid Build Coastguard WorkerDJGPP			implements OpenGL 1.4
270*61046927SAndroid Build Coastguard WorkerGGI			implements OpenGL 1.3
271*61046927SAndroid Build Coastguard WorkerBeOS			implements OpenGL 1.4
272*61046927SAndroid Build Coastguard WorkerAllegro			needs updating
273*61046927SAndroid Build Coastguard WorkerD3D			needs updating
274*61046927SAndroid Build Coastguard Worker
275*61046927SAndroid Build Coastguard WorkerNote: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
276*61046927SAndroid Build Coastguard Workerdriver call the _mesa_enable_1_4_extensions() function.
277*61046927SAndroid Build Coastguard Worker
278*61046927SAndroid Build Coastguard Worker
279*61046927SAndroid Build Coastguard Worker----------------------------------------------------------------------
280