~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to docs/relnotes/3.3

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