~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to docs/relnotes/5.1

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

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