1848b8605Smrg
2848b8605Smrg                         Mesa 3.5 release notes
3848b8605Smrg
4848b8605Smrg                             June 21, 2001
5848b8605Smrg
6848b8605Smrg                             PLEASE READ!!!!
7848b8605Smrg
8848b8605Smrg
9848b8605Smrg
10848b8605SmrgIntroduction
11848b8605Smrg------------
12848b8605Smrg
13848b8605SmrgMesa uses an even/odd version number scheme like the Linux kernel.
14848b8605SmrgOdd numbered versions (such as 3.5) designate new developmental releases.
15848b8605SmrgEven numbered versions (such as 3.4) designate stable releases.
16848b8605Smrg
17848b8605SmrgThe biggest change in Mesa 3.5 is a complete overhaul of the source
18848b8605Smrgcode in order to make it more modular.  This was driven by the DRI
19848b8605Smrghardware drivers.  It simplifies the DRI drivers and opens the door
20848b8605Smrgto hardware transform/clip/lighting (TCL).  Keith Whitwell can take
21848b8605Smrgthe credit for that.
22848b8605Smrg
23848b8605Smrg
24848b8605Smrg
25848b8605SmrgDriver Support
26848b8605Smrg--------------
27848b8605Smrg
28848b8605SmrgThe device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
29848b8605SmrgNot all of the older Mesa drivers have been updated.  Here's the status:
30848b8605Smrg
31848b8605SmrgDriver			Status
32848b8605Smrg----------------------	-----------
33848b8605SmrgXMesa (Xlib)		updated
34848b8605SmrgOSMesa (off-screen)	updated
35848b8605SmrgFX (3dfx Voodoo1/2)	updated
36848b8605SmrgSVGA			updated
37848b8605SmrgGGI			not updated
38848b8605SmrgWindows/Win32		not updated
39848b8605SmrgDOS/DJGPP		not updated
40848b8605SmrgBeOS			not updated
41848b8605SmrgAllegro			not updated
42848b8605SmrgD3D			not updated
43848b8605SmrgDOS			not updated
44848b8605Smrg
45848b8605SmrgWe're looking for volunteers to update the remaining drivers.  Please
46848b8605Smrgpost to the Mesa3d-dev mailing list if you can help.
47848b8605Smrg
48848b8605Smrg
49848b8605Smrg
50848b8605SmrgGLU 1.3
51848b8605Smrg-------
52848b8605Smrg
53848b8605SmrgMesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
54848b8605SmrgThis version of GLU supports the GLU 1.3 specification.  The old
55848b8605SmrgMesa GLU library implemented the 1.1 specification.  The SI GLU
56848b8605Smrglibrary should work much better.
57848b8605Smrg
58848b8605SmrgYou'll need a C++ compiler to compile the SI GLU library.  This may
59848b8605Smrgbe a problem on some systems.
60848b8605Smrg
61848b8605Smrg
62848b8605Smrg
63848b8605SmrgNew Extensions
64848b8605Smrg--------------
65848b8605Smrg
66848b8605SmrgGL_EXT_convolution
67848b8605Smrg	Adds image convolution to glRead/Copy/DrawPixels/TexImage.
68848b8605Smrg
69848b8605SmrgGL_ARB_imaging
70848b8605Smrg	This is the optional imaging subset of OpenGL 1.2.
71848b8605Smrg	It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
72848b8605Smrg	GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
73848b8605Smrg	GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
74848b8605Smrg	and GL_SGI_color_matrix extensions all rolled together.
75848b8605Smrg	This is supported in all software renderers but not in all
76848b8605Smrg	hardware drivers (3dfx for example).
77848b8605Smrg
78848b8605SmrgGL_ARB_texture_compression
79848b8605Smrg	This is supported in Mesa but only used by the 3dfx DRI drivers
80848b8605Smrg	for Voodoo4 and later.
81848b8605Smrg
82848b8605SmrgGL_ARB_texture_env_add
83848b8605Smrg	This is identical to GL_EXT_texture_env_add.
84848b8605Smrg
85848b8605SmrgGL_NV_blend_square
86848b8605Smrg	Adds extra blend source and dest factors which allow squaring
87848b8605Smrg	of color values.
88848b8605Smrg
89848b8605SmrgGL_EXT_fog_coord
90848b8605Smrg	Allows specification of a per-vertex fog coordinate instead of
91848b8605Smrg	having fog always computed from the eye distance.
92848b8605Smrg
93848b8605SmrgGL_EXT_secondary_color
94848b8605Smrg	Allows specifying the secondary (specular) color for each vertex
95848b8605Smrg	instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
96848b8605Smrg	mode.
97848b8605Smrg
98848b8605SmrgGL_ARB_texture_env_combine
99848b8605Smrg	Basically the same as GL_EXT_texture_env_combine
100848b8605Smrg
101848b8605SmrgGL_ARB_texture_env_add extension
102848b8605Smrg	Texture addition mode.
103848b8605Smrg
104848b8605SmrgGL_ARB_texture_env_dot3 extension
105848b8605Smrg	Dot product texture environment.
106848b8605Smrg
107848b8605SmrgGL_ARB_texture_border_clamp
108848b8605Smrg	Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
109848b8605Smrg
110848b8605SmrgGL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
111848b8605Smrg	Implements a shadow casting algorithm based on depth map textures
112848b8605Smrg
113848b8605SmrgGL_SGIS_generate_mipmap
114848b8605Smrg	Automatically generate lower mipmap images whenever the base mipmap
115848b8605Smrg	image is changed with glTexImage, glCopyTexImage, etc.
116848b8605Smrg
117848b8605Smrg
118848b8605Smrg
119848b8605SmrglibOSMesa.so
120848b8605Smrg------------
121848b8605Smrg
122848b8605SmrglibOSMesa.so is a new library which contains the OSMesa interface for
123848b8605Smrgoff-screen rendering.  Apps which need the OSMesa interface should link
124848b8605Smrgwith both -lOSMesa and -lGL.  This change was made so that stand-alone
125848b8605SmrgMesa works the same way as XFree86/DRI's libGL.
126848b8605Smrg
127848b8605Smrg
128848b8605Smrg
129848b8605SmrgDevice Driver Changes / Core Mesa Changes
130848b8605Smrg-----------------------------------------
131848b8605Smrg
132848b8605SmrgThe ctx->Driver.LogicOp() function has been removed.  It used to
133848b8605Smrgbe called during state update in order to determine if the driver
134848b8605Smrgcould do glLogicOp() operations, and if not, set the SWLogicOpEnabled
135848b8605Smrgflag.  Drivers should instead examine the LogicOp state themselves
136848b8605Smrgand choose specialized point, line, and triangle functions appropriately,
137848b8605Smrgor fall back to software rendering.  The Xlib driver was the only driver
138848b8605Smrgto use this function.  And since the Xlib driver no longer draws
139848b8605Smrgpoints, lines or triangles using Xlib, the LogicOp function isn't needed.
140848b8605Smrg
141848b8605SmrgThe ctx->Driver.Dither() function has been removed.  Drivers should
142848b8605Smrgdetect dither enable/disable via ctx->Driver.Enable() instead.
143848b8605Smrg
144848b8605SmrgThe ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
145848b8605Smrgare now just called from glIndexMask and glColorMask like the other
146848b8605SmrgGL state-changing functions.  They are no longer called from inside
147848b8605Smrggl_update_state().  Also, they now return void.  The change was made
148848b8605Smrgmostly for sake of uniformity.
149848b8605Smrg
150848b8605SmrgThe NEW_DRVSTATE[0123] flags have been removed.  They weren't being used
151848b8605Smrgand are obsolete w.r.t. the way state updates are done in DRI drivers.
152848b8605Smrg
153848b8605Smrg
154848b8605SmrgRemoved obsolete gl_create_visual() and gl_destroy_visual().
155848b8605Smrg
156848b8605SmrgRenamed functions (new namespace):
157848b8605Smrg
158848b8605Smrgold				new
159848b8605Smrggl_create_framebuffer		_mesa_create_framebuffer
160848b8605Smrggl_destroy_framebuffer		_mesa_destroy_framebuffer
161848b8605Smrggl_create_context		_mesa_create_context
162848b8605Smrggl_destroy_context		_mesa_destroy_context
163848b8605Smrggl_context_initialize		_mesa_context_initialize
164848b8605Smrggl_copy_context			_mesa_copy_context
165848b8605Smrggl_make_current			_mesa_make_current
166848b8605Smrggl_make_current2		_mesa_make_current2
167848b8605Smrggl_get_current_context		_mesa_get_current_context
168848b8605Smrggl_flush_vb			_mesa_flush_vb
169848b8605Smrggl_warning			_mesa_warning
170848b8605Smrggl_compile_error		_mesa_compile_error
171848b8605Smrg
172848b8605Smrg
173848b8605SmrgAll the drivers have been updated, but not all of them have been
174848b8605Smrgtested since I can't test some platforms (DOS, Windows, Allegro, etc).
175848b8605Smrg
176848b8605Smrg
177848b8605SmrgX/Mesa Driver
178848b8605Smrg-------------
179848b8605Smrg
180848b8605SmrgThe source files for the X/Mesa driver in src/X have been renamed.
181848b8605SmrgThe xmesa[1234].c files are gone.  The new files are xm_api.c,
182848b8605Smrgxm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
183848b8605Smrg
184848b8605Smrg
185848b8605Smrg
186848b8605SmrgMultitexture
187848b8605Smrg------------
188848b8605Smrg
189848b8605SmrgEight texture units are now supported by default.
190848b8605Smrg
191848b8605Smrg
192848b8605Smrg
193848b8605SmrgOpenGL SI related changes
194848b8605Smrg-------------------------
195848b8605Smrg
196848b8605SmrgIn an effort to make Mesa's internal interfaces more like the OpenGL
197848b8605SmrgSI interfaces, a number of changes have been made:
198848b8605Smrg
199848b8605Smrg1. Importing the SI's glcore.h file which defines a number of
200848b8605Smrginterface structures like __GLimports and __GLexports.
201848b8605Smrg
202848b8605Smrg2. Renamed "struct gl_context" to "struct __GLcontextRec".
203848b8605Smrg
204848b8605Smrg3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
205848b8605Smrg
206848b8605Smrg4. The GLcontext member Visual is no longer a pointer.
207848b8605Smrg
208848b8605Smrg5. New file: imports.c to setup default import functions for Mesa.
209848b8605Smrg
210848b8605Smrg
211848b8605Smrg
212848b8605Smrg
213848b8605Smrg16-bit color channels
214848b8605Smrg---------------------
215848b8605Smrg
216848b8605SmrgThere's experimental support for 16-bit color channels (64-bit pixels)
217848b8605Smrgin Mesa 3.5.  Only the OSMesa interface can be used for 16-bit rendering.
218848b8605SmrgType "make linux-osmesa16" in the top-level directory to build the
219848b8605Smrgspecial libOSMesa16.so library.
220848b8605Smrg
221848b8605SmrgThis hasn't been tested very thoroughly yet so please file bug reports
222848b8605Smrgif you have trouble.
223848b8605Smrg
224848b8605SmrgIn the future I hope to implement support for 32-bit, floating point
225848b8605Smrgcolor channels.
226848b8605Smrg
227848b8605Smrg----------------------------------------------------------------------
228