271 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
			
		
		
	
	
			271 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Groff
		
	
	
	
| 
 | |
|                          Mesa 3.3 release notes
 | |
| 
 | |
|                              July 21, 2000
 | |
| 
 | |
|                              PLEASE READ!!!!
 | |
| 
 | |
| 
 | |
| 
 | |
| Introduction
 | |
| ------------
 | |
| 
 | |
| Mesa uses an even/odd version number scheme like the Linux kernel.
 | |
| Odd numbered versions (such as 3.3) designate new developmental releases.
 | |
| Even numbered versions (such as 3.2.1) designate stable releases.
 | |
| 
 | |
| Mesa 3.3 has a undergone many internal changes since version 3.2
 | |
| and features a lot of new extensions.  3.3 is expected to be pretty
 | |
| stable, but perhaps not as stable as 3.2 which has been used by
 | |
| thousands of users over the past months.
 | |
| 
 | |
| Everyone is encouraged to try Mesa 3.3.  Bugs should be reported to
 | |
| the Mesa bug database on www.sourceforge.net.
 | |
| 
 | |
| 
 | |
| 
 | |
| Header file / GLenum changes
 | |
| ----------------------------
 | |
| 
 | |
| The gl.h and glu.h headers now use #defines to define all GL_* tokens
 | |
| instead of C-language enums.  This change improves Mesa/OpenGL
 | |
| interoperability.
 | |
| 
 | |
| 
 | |
| 
 | |
| New API dispatch code
 | |
| ---------------------
 | |
| 
 | |
| The core Mesa gl* functions are now implemented with a new dispatch
 | |
| (jump table) which will allow simultaneous direct/indirect rendering.
 | |
| 
 | |
| The code is found in the glapi*.[ch] files.
 | |
| 
 | |
| Of interest:  the actual "glFooBar" functions are generated with
 | |
| templatized code defined in glapitemp.h and included by glapi.c
 | |
| The glapitemp.h template should be reusable for all sorts of OpenGL
 | |
| projects.
 | |
| 
 | |
| The new dispatch code has also optimized with x86 assembly code.
 | |
| This optimization eliminates copying the function arguments during
 | |
| dispatch.
 | |
| 
 | |
| 
 | |
| 
 | |
| New thread support
 | |
| ------------------
 | |
| 
 | |
| Thread support in Mesa has been rewritten.  The glthread.[ch] files
 | |
| replace mthreads.[ch].  Thread safety is always enabled (on platforms
 | |
| which support threads, that is).  There is virtually no performance
 | |
| penalty for typical single-thread applications.  See the glapi.c
 | |
| file for details.
 | |
| 
 | |
| The Xlib driver (XMesa) is now thread-safe as well.  Be sure to
 | |
| call XInitThreads() in your app first.  See the xdemos/glthreads.c
 | |
| demo for an example.
 | |
| 
 | |
| 
 | |
| 
 | |
| Make configuration changes
 | |
| --------------------------
 | |
| 
 | |
| If you use the old-style (non GNU automake) method to build Mesa note
 | |
| that several of the configuration names have changed:
 | |
| 
 | |
|    Old name        New name
 | |
|    -------------   ----------------
 | |
|    linux-elf       linux
 | |
|    linux           linux-static
 | |
|    linux-386-elf   linux-386
 | |
|    linux-386       linux-386-static
 | |
|    etc.
 | |
| 
 | |
| 
 | |
| 
 | |
| New extensions
 | |
| --------------
 | |
| 
 | |
| GL_ARB_transpose_matrix
 | |
| 	Adds glLoadTransposeMatrixARB() and glMultTransposeMatrixARB()
 | |
|         functions.
 | |
| 
 | |
| GL_ARB_texture_cube_map
 | |
| 	For cube-based reflection mapping.
 | |
| 
 | |
| GL_EXT_texture_add_env
 | |
| 	Adds GL_ADD texture environment mode.
 | |
| 	See http://www.berkelium.com/OpenGL/EXT/texture_env_add.txt
 | |
| 
 | |
| GL_EXT_texture_lod_bias
 | |
| 	Allows mipmapped texture blurring and sharpening.
 | |
| 
 | |
| GLX_EXT_visual_rating extension
 | |
| 	This extension has no effect in stand-alone Mesa (used for DRI).
 | |
| 
 | |
| GL_HP_occlusion_test
 | |
| 	Used for bounding box occlusion testing (see demos/occlude.c).
 | |
| 
 | |
| GL_SGIX_pixel_texture / GL_SGIS_pixel_texture
 | |
| 	Lets glDraw/CopyPixels draw a texture coordinate image.
 | |
| 
 | |
| GL_SGI_color_matrix
 | |
| 	Adds a color matrix and another set of scale and bias parameters
 | |
| 	to the glDraw/CopyPixels paths.
 | |
| 
 | |
| GL_SGI_color_table
 | |
| 	Adds additional color tables to the glDraw/Read/CopyPixels paths.
 | |
| 
 | |
| GL_EXT_histogram
 | |
| 	Compute histograms for glDraw/Read/CopyPixels.
 | |
| 
 | |
| GL_EXT_blend_func_separate
 | |
| 	This is the same as GL_INGR_blend_func_separate.
 | |
| 
 | |
| GL_ARB_texture_cube_mapping
 | |
| 	6-face cube mapping, nicer than sphere mapping
 | |
| 
 | |
| GL_EXT_texture_env_combine
 | |
| 	For advanced texture environment effects.
 | |
| 
 | |
| 
 | |
| Documentation for all these functions can be found at
 | |
| http://oss.sgi.com/projects/ogl-sample/registry/
 | |
| 
 | |
| 
 | |
| 
 | |
| GLX_SGI_make_current_read functionality
 | |
| ---------------------------------------
 | |
| 
 | |
| The functionality of this extension is needed for GLX 1.3 (and required
 | |
| for the Linux/OpenGL standards base).
 | |
| 
 | |
| Implementing this function required a **DEVICE DRIVER CHANGE**.
 | |
| The old SetBuffer() function has been replaced by SetReadBuffer() and
 | |
| SetDrawBuffer().  All device drivers will have to be updated because
 | |
| of this change.
 | |
| 
 | |
| The new function, glXMakeContextCurrent(), in GLX 1.3 now works in Mesa.
 | |
| The xdemos/wincopy.c program demonstrates it.
 | |
| 
 | |
| 
 | |
| 
 | |
| Image-related code changes
 | |
| --------------------------
 | |
| 
 | |
| The imaging path code used by glDrawPixels, glTexImage[123]D,
 | |
| glTexSubImage[123], etc has been rewritten.  It's now faster,
 | |
| uses less memory and has several bug fixes.  This work was
 | |
| actually started in Mesa 3.1 with the glTexImage paths but has now
 | |
| been carried over to glDrawPixels as well.
 | |
| 
 | |
| 
 | |
| 
 | |
| Device driver interface changes
 | |
| -------------------------------
 | |
| 
 | |
| Added new functions for hardware stencil buffer support:
 | |
|    WriteStencilSpan
 | |
|    ReadStencilSpan
 | |
|    WriteStencilPixels
 | |
|    ReadStencilPixels
 | |
| 
 | |
| 
 | |
| Removed old depth buffer functions:
 | |
|    AllocDepthBuffer
 | |
|    DepthTestSpan
 | |
|    DepthTestPixels
 | |
|    ReadDepthSpanFloat
 | |
|    ReadDepthSpanInt
 | |
| 
 | |
| 
 | |
| Added new depth buffer functions:
 | |
|    WriteDepthSpan
 | |
|    ReadDepthSpan
 | |
|    WriteDepthPixels
 | |
|    ReadDepthPixels
 | |
| 
 | |
|    These functions always read/write 32-bit GLuints.  This will allow
 | |
|    drivers to have anywhere from 0 to 32-bit Z buffers without
 | |
|    recompiling for 16 vs 32 bits as was previously needed.
 | |
| 
 | |
| 
 | |
| New texture image functions
 | |
|    The entire interface for texture image specification has been updated.
 | |
|    With the new functions, it's optional for Mesa to keep an internal copy
 | |
|    of all textures.  Texture download should be a lot faster when the extra
 | |
|    copy isn't made.
 | |
| 
 | |
| Misc changes
 | |
|    TexEnv now takes a target argument
 | |
|    Removed UseGlobalTexturePalette (use Enable function instead)
 | |
| 
 | |
| 
 | |
| Also added
 | |
|    ReadPixels
 | |
|    CopyPixels
 | |
| 
 | |
| 
 | |
| The SetBufffer function has been replaced by SetDrawBuffer and
 | |
| SetReadBuffer functions.  This lets core Mesa independently
 | |
| specify which buffer is to be used for reading and which for
 | |
| drawing.
 | |
| 
 | |
| The Clear function's mask parameter has changed.  Instead of
 | |
| mask being the flags specified by the user to glClear, the
 | |
| mask is now a bitmask of the DD_*_BIT flags in dd.h.  Now
 | |
| multiple color buffers can be specified for clearing (ala
 | |
| glDrawBuffers).  The driver's Clear function must also
 | |
| check the glColorMask glIndexMask, and glStencilMask settings
 | |
| and do the right thing.  See the X/Mesa, OS/Mesa, or FX/Mesa
 | |
| drivers for examples.
 | |
| 
 | |
| 
 | |
| The depth buffer changes shouldn't be hard to make for existing
 | |
| drivers.  In fact, it should simply the code.  Be careful with
 | |
| the depthBits value passed to gl_create_context().  1 is a bad
 | |
| value!  It should normally be 0, 16, 24, or 32.
 | |
| 
 | |
| 
 | |
| gl_create_framebuffer() takes new arguments which explicitly tell
 | |
| core Mesa which ancillary buffers (depth, stencil, accum, alpha)
 | |
| should be implemented in software.  Mesa hardware drivers should
 | |
| carefully set these flags depending on which buffers are in the
 | |
| graphics card.
 | |
| 
 | |
| 
 | |
| 
 | |
| Internal constants
 | |
| ------------------
 | |
| 
 | |
| Point and line size range and granularity limits are now stored
 | |
| in the gl_constants struct, which is the Const member of GLcontext.
 | |
| The limits are initialized from values in config.h but may be
 | |
| overridden by device drivers to reflect the limits of that driver's
 | |
| hardware.
 | |
| 
 | |
| Also added constants for NumAuxBuffers and SubPixelBits.
 | |
| 
 | |
| 
 | |
| 
 | |
| OpenGL Conformance
 | |
| ------------------
 | |
| 
 | |
| Mesa now passes all the OpenGL 1.1 conformance tests, except for
 | |
| antialiased lines.  AA lines fail on some, but not all, the tests.
 | |
| In order to fix the remaining failures, a new AA line algorithm will
 | |
| be needed (which computes coverage values for end-point fragments).
 | |
| This will be done for Mesa 3.5/3.6.
 | |
| 
 | |
| 
 | |
| 
 | |
| OpenGL 1.2 GL_ARB_imaging subset
 | |
| --------------------------------
 | |
| 
 | |
| Mesa 3.3 implements all the features of GL_ARB_imaging except for
 | |
| image convolution.  This will (hopefully) be done for Mesa 3.5/3.6.
 | |
| 
 | |
| 
 | |
| 
 | |
| ----------------------------------------------------------------------
 |