228 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
			
		
		
	
	
			228 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
| 
 | |
|                          Mesa 3.5 release notes
 | |
| 
 | |
|                              June 21, 2001
 | |
| 
 | |
|                              PLEASE READ!!!!
 | |
| 
 | |
| 
 | |
| 
 | |
| Introduction
 | |
| ------------
 | |
| 
 | |
| Mesa uses an even/odd version number scheme like the Linux kernel.
 | |
| Odd numbered versions (such as 3.5) designate new developmental releases.
 | |
| Even numbered versions (such as 3.4) designate stable releases.
 | |
| 
 | |
| The biggest change in Mesa 3.5 is a complete overhaul of the source
 | |
| code in order to make it more modular.  This was driven by the DRI
 | |
| hardware drivers.  It simplifies the DRI drivers and opens the door
 | |
| to hardware transform/clip/lighting (TCL).  Keith Whitwell can take
 | |
| the credit for that.
 | |
| 
 | |
| 
 | |
| 
 | |
| Driver Support
 | |
| --------------
 | |
| 
 | |
| The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
 | |
| Not all of the older Mesa drivers have been updated.  Here's the status:
 | |
| 
 | |
| Driver			Status
 | |
| ----------------------	-----------
 | |
| XMesa (Xlib)		updated
 | |
| OSMesa (off-screen)	updated
 | |
| FX (3dfx Voodoo1/2)	updated
 | |
| SVGA			updated
 | |
| GGI			not updated
 | |
| Windows/Win32		not updated
 | |
| DOS/DJGPP		not updated
 | |
| BeOS			not updated
 | |
| Allegro			not updated
 | |
| D3D			not updated
 | |
| DOS			not updated
 | |
| 
 | |
| We're looking for volunteers to update the remaining drivers.  Please
 | |
| post to the Mesa3d-dev mailing list if you can help.
 | |
| 
 | |
| 
 | |
| 
 | |
| GLU 1.3
 | |
| -------
 | |
| 
 | |
| Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
 | |
| This version of GLU supports the GLU 1.3 specification.  The old
 | |
| Mesa GLU library implemented the 1.1 specification.  The SI GLU
 | |
| library should work much better.
 | |
| 
 | |
| You'll need a C++ compiler to compile the SI GLU library.  This may
 | |
| be a problem on some systems.
 | |
| 
 | |
| 
 | |
| 
 | |
| New Extensions
 | |
| --------------
 | |
| 
 | |
| GL_EXT_convolution
 | |
| 	Adds image convolution to glRead/Copy/DrawPixels/TexImage.
 | |
| 
 | |
| GL_ARB_imaging
 | |
| 	This is the optional imaging subset of OpenGL 1.2.
 | |
| 	It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
 | |
| 	GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
 | |
| 	GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
 | |
| 	and GL_SGI_color_matrix extensions all rolled together.
 | |
| 	This is supported in all software renderers but not in all
 | |
| 	hardware drivers (3dfx for example).
 | |
| 
 | |
| GL_ARB_texture_compression
 | |
| 	This is supported in Mesa but only used by the 3dfx DRI drivers
 | |
| 	for Voodoo4 and later.
 | |
| 
 | |
| GL_ARB_texture_env_add
 | |
| 	This is identical to GL_EXT_texture_env_add.
 | |
| 
 | |
| GL_NV_blend_square
 | |
| 	Adds extra blend source and dest factors which allow squaring
 | |
| 	of color values.
 | |
| 
 | |
| GL_EXT_fog_coord
 | |
| 	Allows specification of a per-vertex fog coordinate instead of
 | |
| 	having fog always computed from the eye distance.
 | |
| 
 | |
| GL_EXT_secondary_color
 | |
| 	Allows specifying the secondary (specular) color for each vertex
 | |
| 	instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
 | |
| 	mode.
 | |
| 
 | |
| GL_ARB_texture_env_combine
 | |
| 	Basically the same as GL_EXT_texture_env_combine
 | |
| 
 | |
| GL_ARB_texture_env_add extension
 | |
| 	Texture addition mode.
 | |
| 
 | |
| GL_ARB_texture_env_dot3 extension
 | |
| 	Dot product texture environment.
 | |
| 
 | |
| GL_ARB_texture_border_clamp
 | |
| 	Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
 | |
| 
 | |
| GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
 | |
| 	Implements a shadow casting algorithm based on depth map textures
 | |
| 
 | |
| GL_SGIS_generate_mipmap
 | |
| 	Automatically generate lower mipmap images whenever the base mipmap
 | |
| 	image is changed with glTexImage, glCopyTexImage, etc.
 | |
| 
 | |
| 
 | |
| 
 | |
| libOSMesa.so
 | |
| ------------
 | |
| 
 | |
| libOSMesa.so is a new library which contains the OSMesa interface for
 | |
| off-screen rendering.  Apps which need the OSMesa interface should link
 | |
| with both -lOSMesa and -lGL.  This change was made so that stand-alone
 | |
| Mesa works the same way as XFree86/DRI's libGL.
 | |
| 
 | |
| 
 | |
| 
 | |
| Device Driver Changes / Core Mesa Changes
 | |
| -----------------------------------------
 | |
| 
 | |
| The ctx->Driver.LogicOp() function has been removed.  It used to
 | |
| be called during state update in order to determine if the driver
 | |
| could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
 | |
| flag.  Drivers should instead examine the LogicOp state themselves
 | |
| and choose specialized point, line, and triangle functions appropriately,
 | |
| or fall back to software rendering.  The Xlib driver was the only driver
 | |
| to use this function.  And since the Xlib driver no longer draws
 | |
| points, lines or triangles using Xlib, the LogicOp function isn't needed.
 | |
| 
 | |
| The ctx->Driver.Dither() function has been removed.  Drivers should
 | |
| detect dither enable/disable via ctx->Driver.Enable() instead.
 | |
| 
 | |
| The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
 | |
| are now just called from glIndexMask and glColorMask like the other
 | |
| GL state-changing functions.  They are no longer called from inside
 | |
| gl_update_state().  Also, they now return void.  The change was made
 | |
| mostly for sake of uniformity.
 | |
| 
 | |
| The NEW_DRVSTATE[0123] flags have been removed.  They weren't being used
 | |
| and are obsolete w.r.t. the way state updates are done in DRI drivers.
 | |
| 
 | |
| 
 | |
| Removed obsolete gl_create_visual() and gl_destroy_visual().
 | |
| 
 | |
| Renamed functions (new namespace):
 | |
| 
 | |
| old				new
 | |
| gl_create_framebuffer		_mesa_create_framebuffer
 | |
| gl_destroy_framebuffer		_mesa_destroy_framebuffer
 | |
| gl_create_context		_mesa_create_context
 | |
| gl_destroy_context		_mesa_destroy_context
 | |
| gl_context_initialize		_mesa_context_initialize
 | |
| gl_copy_context			_mesa_copy_context
 | |
| gl_make_current			_mesa_make_current
 | |
| gl_make_current2		_mesa_make_current2
 | |
| gl_get_current_context		_mesa_get_current_context
 | |
| gl_flush_vb			_mesa_flush_vb
 | |
| gl_warning			_mesa_warning
 | |
| gl_compile_error		_mesa_compile_error
 | |
| 
 | |
| 
 | |
| All the drivers have been updated, but not all of them have been
 | |
| tested since I can't test some platforms (DOS, Windows, Allegro, etc).
 | |
| 
 | |
| 
 | |
| X/Mesa Driver
 | |
| -------------
 | |
| 
 | |
| The source files for the X/Mesa driver in src/X have been renamed.
 | |
| The xmesa[1234].c files are gone.  The new files are xm_api.c,
 | |
| xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
 | |
| 
 | |
| 
 | |
| 
 | |
| Multitexture
 | |
| ------------
 | |
| 
 | |
| Eight texture units are now supported by default.
 | |
| 
 | |
| 
 | |
| 
 | |
| OpenGL SI related changes
 | |
| -------------------------
 | |
| 
 | |
| In an effort to make Mesa's internal interfaces more like the OpenGL
 | |
| SI interfaces, a number of changes have been made:
 | |
| 
 | |
| 1. Importing the SI's glcore.h file which defines a number of
 | |
| interface structures like __GLimports and __GLexports.
 | |
| 
 | |
| 2. Renamed "struct gl_context" to "struct __GLcontextRec".
 | |
| 
 | |
| 3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
 | |
| 
 | |
| 4. The GLcontext member Visual is no longer a pointer.
 | |
| 
 | |
| 5. New file: imports.c to setup default import functions for Mesa.
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 16-bit color channels
 | |
| ---------------------
 | |
| 
 | |
| There's experimental support for 16-bit color channels (64-bit pixels)
 | |
| in Mesa 3.5.  Only the OSMesa interface can be used for 16-bit rendering.
 | |
| Type "make linux-osmesa16" in the top-level directory to build the
 | |
| special libOSMesa16.so library.
 | |
| 
 | |
| This hasn't been tested very thoroughly yet so please file bug reports
 | |
| if you have trouble.
 | |
| 
 | |
| In the future I hope to implement support for 32-bit, floating point
 | |
| color channels.
 | |
| 
 | |
| ----------------------------------------------------------------------
 |