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