1bf215546Sopenharmony_ci 2bf215546Sopenharmony_ci Mesa 3.5 release notes 3bf215546Sopenharmony_ci 4bf215546Sopenharmony_ci June 21, 2001 5bf215546Sopenharmony_ci 6bf215546Sopenharmony_ci PLEASE READ!!!! 7bf215546Sopenharmony_ci 8bf215546Sopenharmony_ci 9bf215546Sopenharmony_ci 10bf215546Sopenharmony_ciIntroduction 11bf215546Sopenharmony_ci------------ 12bf215546Sopenharmony_ci 13bf215546Sopenharmony_ciMesa uses an even/odd version number scheme like the Linux kernel. 14bf215546Sopenharmony_ciOdd numbered versions (such as 3.5) designate new developmental releases. 15bf215546Sopenharmony_ciEven numbered versions (such as 3.4) designate stable releases. 16bf215546Sopenharmony_ci 17bf215546Sopenharmony_ciThe biggest change in Mesa 3.5 is a complete overhaul of the source 18bf215546Sopenharmony_cicode in order to make it more modular. This was driven by the DRI 19bf215546Sopenharmony_cihardware drivers. It simplifies the DRI drivers and opens the door 20bf215546Sopenharmony_cito hardware transform/clip/lighting (TCL). Keith Whitwell can take 21bf215546Sopenharmony_cithe credit for that. 22bf215546Sopenharmony_ci 23bf215546Sopenharmony_ci 24bf215546Sopenharmony_ci 25bf215546Sopenharmony_ciDriver Support 26bf215546Sopenharmony_ci-------------- 27bf215546Sopenharmony_ci 28bf215546Sopenharmony_ciThe device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4 29bf215546Sopenharmony_ciNot all of the older Mesa drivers have been updated. Here's the status: 30bf215546Sopenharmony_ci 31bf215546Sopenharmony_ciDriver Status 32bf215546Sopenharmony_ci---------------------- ----------- 33bf215546Sopenharmony_ciXMesa (Xlib) updated 34bf215546Sopenharmony_ciOSMesa (off-screen) updated 35bf215546Sopenharmony_ciFX (3dfx Voodoo1/2) updated 36bf215546Sopenharmony_ciSVGA updated 37bf215546Sopenharmony_ciGGI not updated 38bf215546Sopenharmony_ciWindows/Win32 not updated 39bf215546Sopenharmony_ciDOS/DJGPP not updated 40bf215546Sopenharmony_ciBeOS not updated 41bf215546Sopenharmony_ciAllegro not updated 42bf215546Sopenharmony_ciD3D not updated 43bf215546Sopenharmony_ciDOS not updated 44bf215546Sopenharmony_ci 45bf215546Sopenharmony_ciWe're looking for volunteers to update the remaining drivers. Please 46bf215546Sopenharmony_cipost to the Mesa3d-dev mailing list if you can help. 47bf215546Sopenharmony_ci 48bf215546Sopenharmony_ci 49bf215546Sopenharmony_ci 50bf215546Sopenharmony_ciGLU 1.3 51bf215546Sopenharmony_ci------- 52bf215546Sopenharmony_ci 53bf215546Sopenharmony_ciMesa 3.5 includes the SGI Sample Implementation (SI) GLU library. 54bf215546Sopenharmony_ciThis version of GLU supports the GLU 1.3 specification. The old 55bf215546Sopenharmony_ciMesa GLU library implemented the 1.1 specification. The SI GLU 56bf215546Sopenharmony_cilibrary should work much better. 57bf215546Sopenharmony_ci 58bf215546Sopenharmony_ciYou'll need a C++ compiler to compile the SI GLU library. This may 59bf215546Sopenharmony_cibe a problem on some systems. 60bf215546Sopenharmony_ci 61bf215546Sopenharmony_ci 62bf215546Sopenharmony_ci 63bf215546Sopenharmony_ciNew Extensions 64bf215546Sopenharmony_ci-------------- 65bf215546Sopenharmony_ci 66bf215546Sopenharmony_ciGL_EXT_convolution 67bf215546Sopenharmony_ci Adds image convolution to glRead/Copy/DrawPixels/TexImage. 68bf215546Sopenharmony_ci 69bf215546Sopenharmony_ciGL_ARB_imaging 70bf215546Sopenharmony_ci This is the optional imaging subset of OpenGL 1.2. 71bf215546Sopenharmony_ci It's the GL_EXT_convolution, GL_HP_convolution_border_modes, 72bf215546Sopenharmony_ci GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable 73bf215546Sopenharmony_ci GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract 74bf215546Sopenharmony_ci and GL_SGI_color_matrix extensions all rolled together. 75bf215546Sopenharmony_ci This is supported in all software renderers but not in all 76bf215546Sopenharmony_ci hardware drivers (3dfx for example). 77bf215546Sopenharmony_ci 78bf215546Sopenharmony_ciGL_ARB_texture_compression 79bf215546Sopenharmony_ci This is supported in Mesa but only used by the 3dfx DRI drivers 80bf215546Sopenharmony_ci for Voodoo4 and later. 81bf215546Sopenharmony_ci 82bf215546Sopenharmony_ciGL_ARB_texture_env_add 83bf215546Sopenharmony_ci This is identical to GL_EXT_texture_env_add. 84bf215546Sopenharmony_ci 85bf215546Sopenharmony_ciGL_NV_blend_square 86bf215546Sopenharmony_ci Adds extra blend source and dest factors which allow squaring 87bf215546Sopenharmony_ci of color values. 88bf215546Sopenharmony_ci 89bf215546Sopenharmony_ciGL_EXT_fog_coord 90bf215546Sopenharmony_ci Allows specification of a per-vertex fog coordinate instead of 91bf215546Sopenharmony_ci having fog always computed from the eye distance. 92bf215546Sopenharmony_ci 93bf215546Sopenharmony_ciGL_EXT_secondary_color 94bf215546Sopenharmony_ci Allows specifying the secondary (specular) color for each vertex 95bf215546Sopenharmony_ci instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR 96bf215546Sopenharmony_ci mode. 97bf215546Sopenharmony_ci 98bf215546Sopenharmony_ciGL_ARB_texture_env_combine 99bf215546Sopenharmony_ci Basically the same as GL_EXT_texture_env_combine 100bf215546Sopenharmony_ci 101bf215546Sopenharmony_ciGL_ARB_texture_env_add extension 102bf215546Sopenharmony_ci Texture addition mode. 103bf215546Sopenharmony_ci 104bf215546Sopenharmony_ciGL_ARB_texture_env_dot3 extension 105bf215546Sopenharmony_ci Dot product texture environment. 106bf215546Sopenharmony_ci 107bf215546Sopenharmony_ciGL_ARB_texture_border_clamp 108bf215546Sopenharmony_ci Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode 109bf215546Sopenharmony_ci 110bf215546Sopenharmony_ciGL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient 111bf215546Sopenharmony_ci Implements a shadow casting algorithm based on depth map textures 112bf215546Sopenharmony_ci 113bf215546Sopenharmony_ciGL_SGIS_generate_mipmap 114bf215546Sopenharmony_ci Automatically generate lower mipmap images whenever the base mipmap 115bf215546Sopenharmony_ci image is changed with glTexImage, glCopyTexImage, etc. 116bf215546Sopenharmony_ci 117bf215546Sopenharmony_ci 118bf215546Sopenharmony_ci 119bf215546Sopenharmony_cilibOSMesa.so 120bf215546Sopenharmony_ci------------ 121bf215546Sopenharmony_ci 122bf215546Sopenharmony_cilibOSMesa.so is a new library which contains the OSMesa interface for 123bf215546Sopenharmony_cioff-screen rendering. Apps which need the OSMesa interface should link 124bf215546Sopenharmony_ciwith both -lOSMesa and -lGL. This change was made so that stand-alone 125bf215546Sopenharmony_ciMesa works the same way as XFree86/DRI's libGL. 126bf215546Sopenharmony_ci 127bf215546Sopenharmony_ci 128bf215546Sopenharmony_ci 129bf215546Sopenharmony_ciDevice Driver Changes / Core Mesa Changes 130bf215546Sopenharmony_ci----------------------------------------- 131bf215546Sopenharmony_ci 132bf215546Sopenharmony_ciThe ctx->Driver.LogicOp() function has been removed. It used to 133bf215546Sopenharmony_cibe called during state update in order to determine if the driver 134bf215546Sopenharmony_cicould do glLogicOp() operations, and if not, set the SWLogicOpEnabled 135bf215546Sopenharmony_ciflag. Drivers should instead examine the LogicOp state themselves 136bf215546Sopenharmony_ciand choose specialized point, line, and triangle functions appropriately, 137bf215546Sopenharmony_cior fall back to software rendering. The Xlib driver was the only driver 138bf215546Sopenharmony_cito use this function. And since the Xlib driver no longer draws 139bf215546Sopenharmony_cipoints, lines or triangles using Xlib, the LogicOp function isn't needed. 140bf215546Sopenharmony_ci 141bf215546Sopenharmony_ciThe ctx->Driver.Dither() function has been removed. Drivers should 142bf215546Sopenharmony_cidetect dither enable/disable via ctx->Driver.Enable() instead. 143bf215546Sopenharmony_ci 144bf215546Sopenharmony_ciThe ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions 145bf215546Sopenharmony_ciare now just called from glIndexMask and glColorMask like the other 146bf215546Sopenharmony_ciGL state-changing functions. They are no longer called from inside 147bf215546Sopenharmony_cigl_update_state(). Also, they now return void. The change was made 148bf215546Sopenharmony_cimostly for sake of uniformity. 149bf215546Sopenharmony_ci 150bf215546Sopenharmony_ciThe NEW_DRVSTATE[0123] flags have been removed. They weren't being used 151bf215546Sopenharmony_ciand are obsolete w.r.t. the way state updates are done in DRI drivers. 152bf215546Sopenharmony_ci 153bf215546Sopenharmony_ci 154bf215546Sopenharmony_ciRemoved obsolete gl_create_visual() and gl_destroy_visual(). 155bf215546Sopenharmony_ci 156bf215546Sopenharmony_ciRenamed functions (new namespace): 157bf215546Sopenharmony_ci 158bf215546Sopenharmony_ciold new 159bf215546Sopenharmony_cigl_create_framebuffer _mesa_create_framebuffer 160bf215546Sopenharmony_cigl_destroy_framebuffer _mesa_destroy_framebuffer 161bf215546Sopenharmony_cigl_create_context _mesa_create_context 162bf215546Sopenharmony_cigl_destroy_context _mesa_destroy_context 163bf215546Sopenharmony_cigl_context_initialize _mesa_context_initialize 164bf215546Sopenharmony_cigl_copy_context _mesa_copy_context 165bf215546Sopenharmony_cigl_make_current _mesa_make_current 166bf215546Sopenharmony_cigl_make_current2 _mesa_make_current2 167bf215546Sopenharmony_cigl_get_current_context _mesa_get_current_context 168bf215546Sopenharmony_cigl_flush_vb _mesa_flush_vb 169bf215546Sopenharmony_cigl_warning _mesa_warning 170bf215546Sopenharmony_cigl_compile_error _mesa_compile_error 171bf215546Sopenharmony_ci 172bf215546Sopenharmony_ci 173bf215546Sopenharmony_ciAll the drivers have been updated, but not all of them have been 174bf215546Sopenharmony_citested since I can't test some platforms (DOS, Windows, Allegro, etc). 175bf215546Sopenharmony_ci 176bf215546Sopenharmony_ci 177bf215546Sopenharmony_ciX/Mesa Driver 178bf215546Sopenharmony_ci------------- 179bf215546Sopenharmony_ci 180bf215546Sopenharmony_ciThe source files for the X/Mesa driver in src/X have been renamed. 181bf215546Sopenharmony_ciThe xmesa[1234].c files are gone. The new files are xm_api.c, 182bf215546Sopenharmony_cixm_dd.c, xm_line.c, xm_span.c and xm_tri.c. 183bf215546Sopenharmony_ci 184bf215546Sopenharmony_ci 185bf215546Sopenharmony_ci 186bf215546Sopenharmony_ciMultitexture 187bf215546Sopenharmony_ci------------ 188bf215546Sopenharmony_ci 189bf215546Sopenharmony_ciEight texture units are now supported by default. 190bf215546Sopenharmony_ci 191bf215546Sopenharmony_ci 192bf215546Sopenharmony_ci 193bf215546Sopenharmony_ciOpenGL SI related changes 194bf215546Sopenharmony_ci------------------------- 195bf215546Sopenharmony_ci 196bf215546Sopenharmony_ciIn an effort to make Mesa's internal interfaces more like the OpenGL 197bf215546Sopenharmony_ciSI interfaces, a number of changes have been made: 198bf215546Sopenharmony_ci 199bf215546Sopenharmony_ci1. Importing the SI's glcore.h file which defines a number of 200bf215546Sopenharmony_ciinterface structures like __GLimports and __GLexports. 201bf215546Sopenharmony_ci 202bf215546Sopenharmony_ci2. Renamed "struct gl_context" to "struct __GLcontextRec". 203bf215546Sopenharmony_ci 204bf215546Sopenharmony_ci3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions. 205bf215546Sopenharmony_ci 206bf215546Sopenharmony_ci4. The GLcontext member Visual is no longer a pointer. 207bf215546Sopenharmony_ci 208bf215546Sopenharmony_ci5. New file: imports.c to setup default import functions for Mesa. 209bf215546Sopenharmony_ci 210bf215546Sopenharmony_ci 211bf215546Sopenharmony_ci 212bf215546Sopenharmony_ci 213bf215546Sopenharmony_ci16-bit color channels 214bf215546Sopenharmony_ci--------------------- 215bf215546Sopenharmony_ci 216bf215546Sopenharmony_ciThere's experimental support for 16-bit color channels (64-bit pixels) 217bf215546Sopenharmony_ciin Mesa 3.5. Only the OSMesa interface can be used for 16-bit rendering. 218bf215546Sopenharmony_ciType "make linux-osmesa16" in the top-level directory to build the 219bf215546Sopenharmony_cispecial libOSMesa16.so library. 220bf215546Sopenharmony_ci 221bf215546Sopenharmony_ciThis hasn't been tested very thoroughly yet so please file bug reports 222bf215546Sopenharmony_ciif you have trouble. 223bf215546Sopenharmony_ci 224bf215546Sopenharmony_ciIn the future I hope to implement support for 32-bit, floating point 225bf215546Sopenharmony_cicolor channels. 226bf215546Sopenharmony_ci 227bf215546Sopenharmony_ci---------------------------------------------------------------------- 228