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