1
2                         Mesa 3.5 release notes
3
4                             June 21, 2001
5
6                             PLEASE READ!!!!
7
8
9
10Introduction
11------------
12
13Mesa uses an even/odd version number scheme like the Linux kernel.
14Odd numbered versions (such as 3.5) designate new developmental releases.
15Even numbered versions (such as 3.4) designate stable releases.
16
17The biggest change in Mesa 3.5 is a complete overhaul of the source
18code in order to make it more modular.  This was driven by the DRI
19hardware drivers.  It simplifies the DRI drivers and opens the door
20to hardware transform/clip/lighting (TCL).  Keith Whitwell can take
21the credit for that.
22
23
24
25Driver Support
26--------------
27
28The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
29Not all of the older Mesa drivers have been updated.  Here's the status:
30
31Driver			Status
32----------------------	-----------
33XMesa (Xlib)		updated
34OSMesa (off-screen)	updated
35FX (3dfx Voodoo1/2)	updated
36SVGA			updated
37GGI			not updated
38Windows/Win32		not updated
39DOS/DJGPP		not updated
40BeOS			not updated
41Allegro			not updated
42D3D			not updated
43DOS			not updated
44
45We're looking for volunteers to update the remaining drivers.  Please
46post to the Mesa3d-dev mailing list if you can help.
47
48
49
50GLU 1.3
51-------
52
53Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
54This version of GLU supports the GLU 1.3 specification.  The old
55Mesa GLU library implemented the 1.1 specification.  The SI GLU
56library should work much better.
57
58You'll need a C++ compiler to compile the SI GLU library.  This may
59be a problem on some systems.
60
61
62
63New Extensions
64--------------
65
66GL_EXT_convolution
67	Adds image convolution to glRead/Copy/DrawPixels/TexImage.
68
69GL_ARB_imaging
70	This is the optional imaging subset of OpenGL 1.2.
71	It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
72	GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
73	GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
74	and GL_SGI_color_matrix extensions all rolled together.
75	This is supported in all software renderers but not in all
76	hardware drivers (3dfx for example).
77
78GL_ARB_texture_compression
79	This is supported in Mesa but only used by the 3dfx DRI drivers
80	for Voodoo4 and later.
81
82GL_ARB_texture_env_add
83	This is identical to GL_EXT_texture_env_add.
84
85GL_NV_blend_square
86	Adds extra blend source and dest factors which allow squaring
87	of color values.
88
89GL_EXT_fog_coord
90	Allows specification of a per-vertex fog coordinate instead of
91	having fog always computed from the eye distance.
92
93GL_EXT_secondary_color
94	Allows specifying the secondary (specular) color for each vertex
95	instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
96	mode.
97
98GL_ARB_texture_env_combine
99	Basically the same as GL_EXT_texture_env_combine
100
101GL_ARB_texture_env_add extension
102	Texture addition mode.
103
104GL_ARB_texture_env_dot3 extension
105	Dot product texture environment.
106
107GL_ARB_texture_border_clamp
108	Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
109
110GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
111	Implements a shadow casting algorithm based on depth map textures
112
113GL_SGIS_generate_mipmap
114	Automatically generate lower mipmap images whenever the base mipmap
115	image is changed with glTexImage, glCopyTexImage, etc.
116
117
118
119libOSMesa.so
120------------
121
122libOSMesa.so is a new library which contains the OSMesa interface for
123off-screen rendering.  Apps which need the OSMesa interface should link
124with both -lOSMesa and -lGL.  This change was made so that stand-alone
125Mesa works the same way as XFree86/DRI's libGL.
126
127
128
129Device Driver Changes / Core Mesa Changes
130-----------------------------------------
131
132The ctx->Driver.LogicOp() function has been removed.  It used to
133be called during state update in order to determine if the driver
134could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
135flag.  Drivers should instead examine the LogicOp state themselves
136and choose specialized point, line, and triangle functions appropriately,
137or fall back to software rendering.  The Xlib driver was the only driver
138to use this function.  And since the Xlib driver no longer draws
139points, lines or triangles using Xlib, the LogicOp function isn't needed.
140
141The ctx->Driver.Dither() function has been removed.  Drivers should
142detect dither enable/disable via ctx->Driver.Enable() instead.
143
144The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
145are now just called from glIndexMask and glColorMask like the other
146GL state-changing functions.  They are no longer called from inside
147gl_update_state().  Also, they now return void.  The change was made
148mostly for sake of uniformity.
149
150The NEW_DRVSTATE[0123] flags have been removed.  They weren't being used
151and are obsolete w.r.t. the way state updates are done in DRI drivers.
152
153
154Removed obsolete gl_create_visual() and gl_destroy_visual().
155
156Renamed functions (new namespace):
157
158old				new
159gl_create_framebuffer		_mesa_create_framebuffer
160gl_destroy_framebuffer		_mesa_destroy_framebuffer
161gl_create_context		_mesa_create_context
162gl_destroy_context		_mesa_destroy_context
163gl_context_initialize		_mesa_context_initialize
164gl_copy_context			_mesa_copy_context
165gl_make_current			_mesa_make_current
166gl_make_current2		_mesa_make_current2
167gl_get_current_context		_mesa_get_current_context
168gl_flush_vb			_mesa_flush_vb
169gl_warning			_mesa_warning
170gl_compile_error		_mesa_compile_error
171
172
173All the drivers have been updated, but not all of them have been
174tested since I can't test some platforms (DOS, Windows, Allegro, etc).
175
176
177X/Mesa Driver
178-------------
179
180The source files for the X/Mesa driver in src/X have been renamed.
181The xmesa[1234].c files are gone.  The new files are xm_api.c,
182xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
183
184
185
186Multitexture
187------------
188
189Eight texture units are now supported by default.
190
191
192
193OpenGL SI related changes
194-------------------------
195
196In an effort to make Mesa's internal interfaces more like the OpenGL
197SI interfaces, a number of changes have been made:
198
1991. Importing the SI's glcore.h file which defines a number of
200interface structures like __GLimports and __GLexports.
201
2022. Renamed "struct gl_context" to "struct __GLcontextRec".
203
2043. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
205
2064. The GLcontext member Visual is no longer a pointer.
207
2085. New file: imports.c to setup default import functions for Mesa.
209
210
211
212
21316-bit color channels
214---------------------
215
216There's experimental support for 16-bit color channels (64-bit pixels)
217in Mesa 3.5.  Only the OSMesa interface can be used for 16-bit rendering.
218Type "make linux-osmesa16" in the top-level directory to build the
219special libOSMesa16.so library.
220
221This hasn't been tested very thoroughly yet so please file bug reports
222if you have trouble.
223
224In the future I hope to implement support for 32-bit, floating point
225color channels.
226
227----------------------------------------------------------------------
228