Home | History | Annotate | Download | only in docs
      1 
      2                          Mesa 3.5 release notes
      3 
      4                              June 21, 2001
      5 
      6                              PLEASE READ!!!!
      7 
      8 
      9 
     10 Introduction
     11 ------------
     12 
     13 Mesa uses an even/odd version number scheme like the Linux kernel.
     14 Odd numbered versions (such as 3.5) designate new developmental releases.
     15 Even numbered versions (such as 3.4) designate stable releases.
     16 
     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
     20 to hardware transform/clip/lighting (TCL).  Keith Whitwell can take
     21 the credit for that.
     22 
     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 
     48 
     49 
     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 
     62 
     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 
     82 GL_ARB_texture_env_add
     83 	This is identical to GL_EXT_texture_env_add.
     84 
     85 GL_NV_blend_square
     86 	Adds extra blend source and dest factors which allow squaring
     87 	of color values.
     88 
     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 
     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 
    113 GL_SGIS_generate_mipmap
    114 	Automatically generate lower mipmap images whenever the base mipmap
    115 	image is changed with glTexImage, glCopyTexImage, etc.
    116 
    117 
    118 
    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 
    129 Device Driver Changes / Core Mesa Changes
    130 -----------------------------------------
    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 
    141 The ctx->Driver.Dither() function has been removed.  Drivers should
    142 detect dither enable/disable via ctx->Driver.Enable() instead.
    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 
    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.
    152 
    153 
    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 
    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 
    186 Multitexture
    187 ------------
    188 
    189 Eight texture units are now supported by default.
    190 
    191 
    192 
    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 
    211 
    212 
    213 16-bit color channels
    214 ---------------------
    215 
    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.
    220 
    221 This hasn't been tested very thoroughly yet so please file bug reports
    222 if you have trouble.
    223 
    224 In the future I hope to implement support for 32-bit, floating point
    225 color channels.
    226 
    227 ----------------------------------------------------------------------
    228