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