1848b8605Smrg 2848b8605Smrg Mesa 3.5 release notes 3848b8605Smrg 4848b8605Smrg June 21, 2001 5848b8605Smrg 6848b8605Smrg PLEASE READ!!!! 7848b8605Smrg 8848b8605Smrg 9848b8605Smrg 10848b8605SmrgIntroduction 11848b8605Smrg------------ 12848b8605Smrg 13848b8605SmrgMesa uses an even/odd version number scheme like the Linux kernel. 14848b8605SmrgOdd numbered versions (such as 3.5) designate new developmental releases. 15848b8605SmrgEven numbered versions (such as 3.4) designate stable releases. 16848b8605Smrg 17848b8605SmrgThe biggest change in Mesa 3.5 is a complete overhaul of the source 18848b8605Smrgcode in order to make it more modular. This was driven by the DRI 19848b8605Smrghardware drivers. It simplifies the DRI drivers and opens the door 20848b8605Smrgto hardware transform/clip/lighting (TCL). Keith Whitwell can take 21848b8605Smrgthe credit for that. 22848b8605Smrg 23848b8605Smrg 24848b8605Smrg 25848b8605SmrgDriver Support 26848b8605Smrg-------------- 27848b8605Smrg 28848b8605SmrgThe device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4 29848b8605SmrgNot all of the older Mesa drivers have been updated. Here's the status: 30848b8605Smrg 31848b8605SmrgDriver Status 32848b8605Smrg---------------------- ----------- 33848b8605SmrgXMesa (Xlib) updated 34848b8605SmrgOSMesa (off-screen) updated 35848b8605SmrgFX (3dfx Voodoo1/2) updated 36848b8605SmrgSVGA updated 37848b8605SmrgGGI not updated 38848b8605SmrgWindows/Win32 not updated 39848b8605SmrgDOS/DJGPP not updated 40848b8605SmrgBeOS not updated 41848b8605SmrgAllegro not updated 42848b8605SmrgD3D not updated 43848b8605SmrgDOS not updated 44848b8605Smrg 45848b8605SmrgWe're looking for volunteers to update the remaining drivers. Please 46848b8605Smrgpost to the Mesa3d-dev mailing list if you can help. 47848b8605Smrg 48848b8605Smrg 49848b8605Smrg 50848b8605SmrgGLU 1.3 51848b8605Smrg------- 52848b8605Smrg 53848b8605SmrgMesa 3.5 includes the SGI Sample Implementation (SI) GLU library. 54848b8605SmrgThis version of GLU supports the GLU 1.3 specification. The old 55848b8605SmrgMesa GLU library implemented the 1.1 specification. The SI GLU 56848b8605Smrglibrary should work much better. 57848b8605Smrg 58848b8605SmrgYou'll need a C++ compiler to compile the SI GLU library. This may 59848b8605Smrgbe a problem on some systems. 60848b8605Smrg 61848b8605Smrg 62848b8605Smrg 63848b8605SmrgNew Extensions 64848b8605Smrg-------------- 65848b8605Smrg 66848b8605SmrgGL_EXT_convolution 67848b8605Smrg Adds image convolution to glRead/Copy/DrawPixels/TexImage. 68848b8605Smrg 69848b8605SmrgGL_ARB_imaging 70848b8605Smrg This is the optional imaging subset of OpenGL 1.2. 71848b8605Smrg It's the GL_EXT_convolution, GL_HP_convolution_border_modes, 72848b8605Smrg GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable 73848b8605Smrg GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract 74848b8605Smrg and GL_SGI_color_matrix extensions all rolled together. 75848b8605Smrg This is supported in all software renderers but not in all 76848b8605Smrg hardware drivers (3dfx for example). 77848b8605Smrg 78848b8605SmrgGL_ARB_texture_compression 79848b8605Smrg This is supported in Mesa but only used by the 3dfx DRI drivers 80848b8605Smrg for Voodoo4 and later. 81848b8605Smrg 82848b8605SmrgGL_ARB_texture_env_add 83848b8605Smrg This is identical to GL_EXT_texture_env_add. 84848b8605Smrg 85848b8605SmrgGL_NV_blend_square 86848b8605Smrg Adds extra blend source and dest factors which allow squaring 87848b8605Smrg of color values. 88848b8605Smrg 89848b8605SmrgGL_EXT_fog_coord 90848b8605Smrg Allows specification of a per-vertex fog coordinate instead of 91848b8605Smrg having fog always computed from the eye distance. 92848b8605Smrg 93848b8605SmrgGL_EXT_secondary_color 94848b8605Smrg Allows specifying the secondary (specular) color for each vertex 95848b8605Smrg instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR 96848b8605Smrg mode. 97848b8605Smrg 98848b8605SmrgGL_ARB_texture_env_combine 99848b8605Smrg Basically the same as GL_EXT_texture_env_combine 100848b8605Smrg 101848b8605SmrgGL_ARB_texture_env_add extension 102848b8605Smrg Texture addition mode. 103848b8605Smrg 104848b8605SmrgGL_ARB_texture_env_dot3 extension 105848b8605Smrg Dot product texture environment. 106848b8605Smrg 107848b8605SmrgGL_ARB_texture_border_clamp 108848b8605Smrg Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode 109848b8605Smrg 110848b8605SmrgGL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient 111848b8605Smrg Implements a shadow casting algorithm based on depth map textures 112848b8605Smrg 113848b8605SmrgGL_SGIS_generate_mipmap 114848b8605Smrg Automatically generate lower mipmap images whenever the base mipmap 115848b8605Smrg image is changed with glTexImage, glCopyTexImage, etc. 116848b8605Smrg 117848b8605Smrg 118848b8605Smrg 119848b8605SmrglibOSMesa.so 120848b8605Smrg------------ 121848b8605Smrg 122848b8605SmrglibOSMesa.so is a new library which contains the OSMesa interface for 123848b8605Smrgoff-screen rendering. Apps which need the OSMesa interface should link 124848b8605Smrgwith both -lOSMesa and -lGL. This change was made so that stand-alone 125848b8605SmrgMesa works the same way as XFree86/DRI's libGL. 126848b8605Smrg 127848b8605Smrg 128848b8605Smrg 129848b8605SmrgDevice Driver Changes / Core Mesa Changes 130848b8605Smrg----------------------------------------- 131848b8605Smrg 132848b8605SmrgThe ctx->Driver.LogicOp() function has been removed. It used to 133848b8605Smrgbe called during state update in order to determine if the driver 134848b8605Smrgcould do glLogicOp() operations, and if not, set the SWLogicOpEnabled 135848b8605Smrgflag. Drivers should instead examine the LogicOp state themselves 136848b8605Smrgand choose specialized point, line, and triangle functions appropriately, 137848b8605Smrgor fall back to software rendering. The Xlib driver was the only driver 138848b8605Smrgto use this function. And since the Xlib driver no longer draws 139848b8605Smrgpoints, lines or triangles using Xlib, the LogicOp function isn't needed. 140848b8605Smrg 141848b8605SmrgThe ctx->Driver.Dither() function has been removed. Drivers should 142848b8605Smrgdetect dither enable/disable via ctx->Driver.Enable() instead. 143848b8605Smrg 144848b8605SmrgThe ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions 145848b8605Smrgare now just called from glIndexMask and glColorMask like the other 146848b8605SmrgGL state-changing functions. They are no longer called from inside 147848b8605Smrggl_update_state(). Also, they now return void. The change was made 148848b8605Smrgmostly for sake of uniformity. 149848b8605Smrg 150848b8605SmrgThe NEW_DRVSTATE[0123] flags have been removed. They weren't being used 151848b8605Smrgand are obsolete w.r.t. the way state updates are done in DRI drivers. 152848b8605Smrg 153848b8605Smrg 154848b8605SmrgRemoved obsolete gl_create_visual() and gl_destroy_visual(). 155848b8605Smrg 156848b8605SmrgRenamed functions (new namespace): 157848b8605Smrg 158848b8605Smrgold new 159848b8605Smrggl_create_framebuffer _mesa_create_framebuffer 160848b8605Smrggl_destroy_framebuffer _mesa_destroy_framebuffer 161848b8605Smrggl_create_context _mesa_create_context 162848b8605Smrggl_destroy_context _mesa_destroy_context 163848b8605Smrggl_context_initialize _mesa_context_initialize 164848b8605Smrggl_copy_context _mesa_copy_context 165848b8605Smrggl_make_current _mesa_make_current 166848b8605Smrggl_make_current2 _mesa_make_current2 167848b8605Smrggl_get_current_context _mesa_get_current_context 168848b8605Smrggl_flush_vb _mesa_flush_vb 169848b8605Smrggl_warning _mesa_warning 170848b8605Smrggl_compile_error _mesa_compile_error 171848b8605Smrg 172848b8605Smrg 173848b8605SmrgAll the drivers have been updated, but not all of them have been 174848b8605Smrgtested since I can't test some platforms (DOS, Windows, Allegro, etc). 175848b8605Smrg 176848b8605Smrg 177848b8605SmrgX/Mesa Driver 178848b8605Smrg------------- 179848b8605Smrg 180848b8605SmrgThe source files for the X/Mesa driver in src/X have been renamed. 181848b8605SmrgThe xmesa[1234].c files are gone. The new files are xm_api.c, 182848b8605Smrgxm_dd.c, xm_line.c, xm_span.c and xm_tri.c. 183848b8605Smrg 184848b8605Smrg 185848b8605Smrg 186848b8605SmrgMultitexture 187848b8605Smrg------------ 188848b8605Smrg 189848b8605SmrgEight texture units are now supported by default. 190848b8605Smrg 191848b8605Smrg 192848b8605Smrg 193848b8605SmrgOpenGL SI related changes 194848b8605Smrg------------------------- 195848b8605Smrg 196848b8605SmrgIn an effort to make Mesa's internal interfaces more like the OpenGL 197848b8605SmrgSI interfaces, a number of changes have been made: 198848b8605Smrg 199848b8605Smrg1. Importing the SI's glcore.h file which defines a number of 200848b8605Smrginterface structures like __GLimports and __GLexports. 201848b8605Smrg 202848b8605Smrg2. Renamed "struct gl_context" to "struct __GLcontextRec". 203848b8605Smrg 204848b8605Smrg3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions. 205848b8605Smrg 206848b8605Smrg4. The GLcontext member Visual is no longer a pointer. 207848b8605Smrg 208848b8605Smrg5. New file: imports.c to setup default import functions for Mesa. 209848b8605Smrg 210848b8605Smrg 211848b8605Smrg 212848b8605Smrg 213848b8605Smrg16-bit color channels 214848b8605Smrg--------------------- 215848b8605Smrg 216848b8605SmrgThere's experimental support for 16-bit color channels (64-bit pixels) 217848b8605Smrgin Mesa 3.5. Only the OSMesa interface can be used for 16-bit rendering. 218848b8605SmrgType "make linux-osmesa16" in the top-level directory to build the 219848b8605Smrgspecial libOSMesa16.so library. 220848b8605Smrg 221848b8605SmrgThis hasn't been tested very thoroughly yet so please file bug reports 222848b8605Smrgif you have trouble. 223848b8605Smrg 224848b8605SmrgIn the future I hope to implement support for 32-bit, floating point 225848b8605Smrgcolor channels. 226848b8605Smrg 227848b8605Smrg---------------------------------------------------------------------- 228