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