035d027128266eaf54dcc95d640df905c29cb1f5
[mesa.git] / docs / RELNOTES-5.1
1
2 Mesa 5.1 release notes
3
4 Month day, 2003
5
6 PLEASE READ!!!!
7
8
9
10 Introduction
11 ------------
12
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.
16
17
18 Bug fixes
19 ---------
20 See the VERSIONS file for a list of bugs fixed in this release.
21
22
23
24 New Features in Mesa 5.1
25 ------------------------
26
27 New directory tree
28 The whole Mesa directory tree has been cleaned up and reorganized.
29 Some old stuff has been abandoned. Lots of non-Unix makefiles will
30 have to be updated.
31
32 For now, autoconf/automake support has been removed. New autoconf/automake
33 files will added if they meet certain criteria.
34
35
36 GL_ATI_texture_env_combine3 extension
37 This adds a few new texture combine modes.
38 Contributed by Ian Romanick.
39
40 GL_SGI_texture_color_table
41 Adds a color table lookup to the RGBA texture path. There's a separate
42 color table for each texture unit.
43 Contributed by Eric Plante.
44
45 GL_NV_fragment_program
46 NVIDIA's fragment-level programming feature.
47 Possible lurking bugs:
48 - the DDX and DDY commands aren't fully tested
49 - there may be bugs in the parser
50 - the TEX and TXP instructions both do perspective correction
51 - the pack/unpack instructions may not be correct
52
53 GL_EXT_depth_bounds_test
54 This extension adds a scissor-like test for the Z axis. It's used to
55 optimize stencil-volume shadow algorithms.
56
57 GL_NV_light_max_exponent
58 Lifts the 128 limit for max light exponent.
59
60 GL_EXT_texture_rectangle
61 Identical to GL_NV_texture_rectangle
62
63 GL_ARB_occlusion_query
64 Useful for visibility-based culling.
65
66 GL_ARB_texture_non_power_of_two
67 Removes the restriction that texture dimensions must be powers of two.
68
69 GL_ARB_vertex_buffer_object
70 Allows server-side vertex arrays, optimized host/card data transfers, etc.
71
72 GL_ARB_point_sprite
73 ARB-approved version of GL_NV_point_sprite. Basically allows textures
74 to be applied to points.
75
76 GL_IBM_multimode_draw_arrays
77 Allows multiple vertex arrays to be drawn with one call, including arrays
78 of different types of primitives.
79
80 GL_SUN_multi_draw_arrays
81 An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
82
83
84 With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
85 GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
86 all the new features of OpenGL 1.5. Mesa 6.0 (the next stable release)
87 will advertise GL_VERSION = "1.5".
88
89
90
91 Build System Changes
92 --------------------
93
94 The "old style" makefile system has been updated:
95 1. Make-config has been trimmed down to fewer, modern configurations.
96 2. Most of the bin/mklib.* scripts have been rolled into a new "mklib"
97 script that works on all sorts of systems. There are probably some
98 bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5.
99 Improvements/contributes are greatly appreciated.
100 3. The Makefile.X11 files have been cleaned up in various ways
101
102 The GNU automake/autoconf support has been removed. As it was, it seldom
103 worked on anything but Linux. The Mesa developers aren't big fans of
104 automake/autoconf and didn't have the time to maintain it. If someone
105 wants to contribute new automake/autoconf support (and is willing to
106 maintain it), it may be re-incorporated into Mesa.
107
108
109
110 Directory tree reorganization
111 -----------------------------
112
113 The directory structure for Mesa has been overhauled to improve its layout.
114 All source code for Mesa, GLU, GLUT, etc is now under the src/ directory
115 in appropriate subdirectories.
116
117 The Mesa source code and drivers has been reorganized under src/mesa/.
118
119 All demonstration programs and test are now in subdirectories under progs/.
120
121
122
123 Source File Changes
124 -------------------
125
126 The mmath.[ch] files are obsolete. Their contents have been moved
127 into the imports.[ch] and macros.[ch] files.
128
129 The files related to vertex and fragment programming have changed.
130 Old files:
131 vpexec.[ch]
132 vpparse.[ch]
133 vpstate.[ch]
134 New files:
135 nvvertprog.h - NV vertex program definitions
136 nvfragprog.h - NV fragment program definitions
137 nvvertparse.[ch] - NV vertex program parser
138 nvfragparse.[ch] - NV fragment program parser
139 nvprogram.[ch] - NV program API functions
140 nvvertexec.[ch] - NV vertex program execution
141 swrast/s_nvfragprog.[ch] - NV fragment program execution
142
143 Removed files:
144 swrast/s_historgram.[ch] - moved into src/histogram.c
145
146 Other New files:
147 bufferobj.[ch] - GL_ARB_vertex_buffer_object functions
148 arbprogram.[ch] - GL_ARB_vertex/fragment_program functions
149 version.h - defines the Mesa version info
150
151
152 Other Changes
153 -------------
154
155 The ctx->Driver.CreateTexture function has been removed - it wasn't used.
156
157 New device driver hook functions:
158 NewTextureObject - used to allocate struct gl_texture_objects
159 NewTextureImage - used to allocate struct gl_texture_images
160
161 New ctx->Texture._EnabledCoordUnits field:
162 With the addition of GL_NV_fragment_program we may need to interpolate
163 various sets of texture coordinates even when the corresponding texture
164 unit is not enabled. That is, glEnable(GL_TEXTURE_xD) may never get
165 called but we still may have to interpolate texture coordinates across
166 triangles so that the fragment program will get them.
167 This new field indicates which sets of texture coordinates are needed.
168 If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the
169 same bit MUST be set in ctx->Texture._EnabledCoordUnits.
170
171
172
173 To Do
174 -----
175 Add screen-awareness to fakeglx.c
176
177
178
179
180 Device Driver Status
181 --------------------
182
183 A number of Mesa's software drivers haven't been actively maintained for
184 some time. We rely on volunteers to maintain many of these drivers.
185 Here's the current status of all included drivers:
186
187
188 Driver Status
189 ---------------------- ---------------------
190 XMesa (Xlib) implements OpenGL 1.4
191 OSMesa (off-screen) implements OpenGL 1.4
192 FX (3dfx Voodoo1/2) implements OpenGL 1.3
193 SVGA implements OpenGL 1.3
194 Wind River UGL implements OpenGL 1.3
195 Windows/Win32 implements OpenGL 1.4
196 DJGPP implements OpenGL 1.4
197 GGI implements OpenGL 1.3
198 BeOS implements OpenGL 1.4
199 Allegro needs updating
200 D3D needs updating
201
202 Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
203 driver call the _mesa_enable_1_4_extensions() function.
204
205
206 ----------------------------------------------------------------------