13 Mesa uses an even/odd version number scheme like the Linux kernel.
14 Even numbered versions (such as 4.0) designate stable releases.
15 Odd numbered versions (such as 4.1) designate new developmental releases.
18 New Features in Mesa 4.1
19 ------------------------
21 New extensions. Docs at http://oss.sgi.com/projects/ogl-sample/registry/
25 NVIDIA's vertex programming extension
27 GL_NV_vertex_program1_1
29 A few features built on top of GL_NV_vertex_program
33 This is the ARB-approved version of GL_MESA_window_pos
37 This is the ARB-approved version of GL_SGIX_depth_texture.
38 It allows depth (Z buffer) data to be stored in textures.
39 This is used by GL_ARB_shadow
43 Shadow mapping with depth textures.
44 This is the ARB-approved version of GL_SGIX_shadow.
48 Allows one to specify the luminance of shadowed pixels.
49 This is the ARB-approved version of GL_SGIX_shadow_ambient.
53 Extends the set of GL_ARB_shadow texture comparision functions to
54 include all eight of standard OpenGL dept-test functions.
56 GL_ARB_point_parameters
58 This is basically the same as GL_EXT_point_parameters.
60 GL_ARB_texture_env_crossbar
62 Allows any texture combine stage to reference any texture source unit.
66 For rendering points as textured quads. Useful for particle effects.
68 GL_NV_texture_rectangle
70 Allows one to use textures with sizes that are not powers of two.
71 Note that mipmapping and several texture wrap modes are not allowed.
78 A number of Mesa's software drivers haven't been actively maintained for
79 some time. We rely on volunteers to maintain many of these drivers.
80 Here's the current status of all included drivers:
84 ---------------------- ---------------------
85 XMesa (Xlib) implements OpenGL 1.3
86 OSMesa (off-screen) implements OpenGL 1.3
87 FX (3dfx Voodoo1/2) implements OpenGL 1.3
88 SVGA implements OpenGL 1.3
89 Wind River UGL implements OpenGL 1.3
90 Windows/Win32 implements OpenGL 1.3
91 DOS/DJGPP implements OpenGL 1.3
93 BeOS needs updating (underway)
94 Allegro needs updating
103 When moving from Mesa 4.0.x to Mesa 4.1 there are a number of things
104 you may have to update.
106 1. _mesa_create_context() changes. This function now takes a pointer to
107 a __GLimports object. The __GLimports structure contains function
108 pointers to system functions like fprintf(), malloc(), etc.
109 The _mesa_init_default_imports() function can be used to initialize
110 a __GLimports object. Most device drivers (like the DRI drivers)
117 XXX Things To Do Yet XXXX
118 -------------------------
120 Verify x86 code for normal transformation works with new 4-element normal
121 vector arrays. Pretty sure the SSE code is wrong.
123 Finish up NV_vertex_program support for evaluators. Vertex arrays seem
124 to work as of 4/21/2002.
126 Allow multiple points to be rendered into one sw_span.
128 improve point/line rendering speed.
130 _tnl_end() has flushing forced on.
132 readpixels from stencil/z should respect ctx->ReadBuffer
134 glVertexAttrib*NV(index>15) should cause an error.
136 isosurf with vertex program exhibits some missing triangles (probably
137 when recycling the vertex buffer for long prims).
144 If you're porting a DRI or other driver from Mesa 4.0.x to Mesa 4.1 here
145 are some things to change:
147 1. ctx->Texture._ReallyEnabled is obsolete.
149 Since there are now 5 texture targets (1D, 2D, 3D, cube and rect) that
150 left room for only 6 units (6*5 < 32) in this field.
151 This field is being replaced by ctx->Texture._EnabledUnits which has one
152 bit per texture unit. If the bit k of _EnabledUnits is set, that means
153 ctx->Texture.Unit[k]._ReallyEnabled is non-zero. You'll have to look at
154 ctx->Texture.Unit[k]._ReallyEnabled to learn if the 1D, 2D, 3D, cube or
155 rect texture is enabled for unit k.
157 This also means that the constants TEXTURE1_*, TEXTURE2_*, etc are
160 The tokens TEXTURE0_* have been replaced as well (since there's no
161 significance to the "0" part:
164 TEXTURE0_1D TEXTURE_1D_BIT
165 TEXTURE0_2D TEXTURE_2D_BIT
166 TEXTURE0_3D TEXTURE_3D_BIT
167 TEXTURE0_CUBE TEXTURE_CUBE_BIT
168 <none> TEXTURE_RECT_BIT
170 These tokens are only used for the ctx->Texture.Unit[i].Enabled and
171 ctx->Texture.Unit[i]._ReallyEnabled fields. Exactly 0 or 1 bit will
172 be set in _ReallyEnabled at any time!
174 Q: "What's the purpose of Unit[i].Enabled vs Unit[i]._ReallyEnabled?"
175 A: The user can enable GL_TEXTURE_1D, GL_TEXTURE_2D, etc for any
176 texure unit all at once (an unusual thing to do).
177 OpenGL defines priorities that basically say GL_TEXTURE_2D has
178 higher priority than GL_TEXTURE_1D, etc. Also, just because a
179 texture target is enabled by the user doesn't mean we'll actually
180 use that texture! If a texture object is incomplete (missing mip-
181 map levels, etc) it's as if texturing is disabled for that target.
182 The _ReallyEnabled field will have a bit set ONLY if the texture
183 target is enabled and complete. This spares the driver writer from
184 examining a _lot_ of GL state to determine which texture target is
188 2. Tnl tokens changes
190 During the implementation of GL_NV_vertex_program some of the vertex
191 buffer code was changed. Specifically, the VERT_* bits defined in
192 tnl/t_context.h have been renamed to better match the conventions of
193 GL_NV_vertex_program. The old names are still present but obsolete.
194 Drivers should use the newer names.
196 For example: VERT_RGBA is now VERT_BIT_COLOR0 and
197 VERT_SPEC_RGB is now VERT_BIT_COLOR1.
201 ----------------------------------------------------------------------
202 $Id: RELNOTES-4.1,v 1.10 2002/06/15 03:03:58 brianp Exp $