| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 | 
							- 
 -                             Mesa 5.1 release notes
 - 
 -                               December 17, 2003
 - 
 -                                 PLEASE READ!!!!
 - 
 - 
 - 
 - Introduction
 - ------------
 - 
 - Mesa uses an even/odd version number scheme like the Linux kernel.
 - Even-numbered versions (such as 5.0) designate stable releases.
 - Odd-numbered versions (such as 5.1) designate new developmental releases.
 - 
 - 
 - Bug fixes
 - ---------
 - See the VERSIONS file for a list of bugs fixed in this release.
 - 
 - 
 - 
 - New Features in Mesa 5.1
 - ------------------------
 - 
 - GL_ARB_vertex_program / GL_ARB_fragment_program
 -    Michal Krol and Karl Rasche implemented these extensions.  Thanks!
 -    Be aware that there may be some rough edges and lurking bugs.
 - 
 - GL_ATI_texture_env_combine3 extension
 -    This adds a few new texture combine modes.
 -    Contributed by Ian Romanick.
 - 
 - GL_SGI_texture_color_table
 -    Adds a color table lookup to the RGBA texture path.  There's a separate
 -    color table for each texture unit.
 -    Contributed by Eric Plante.
 - 
 - GL_NV_fragment_program
 -    NVIDIA's fragment-level programming feature.
 -    Possible lurking bugs:
 -      - the DDX and DDY commands aren't fully tested
 -      - there may be bugs in the parser
 -      - the TEX and TXP instructions both do perspective correction
 -      - the pack/unpack instructions may not be correct
 - 
 - GL_EXT_depth_bounds_test
 -    This extension adds a scissor-like test for the Z axis.  It's used to
 -    optimize stencil-volume shadow algorithms.
 - 
 - GL_NV_light_max_exponent
 -    Lifts the 128 limit for max light exponent.
 - 
 - GL_EXT_texture_rectangle
 -    Identical to GL_NV_texture_rectangle
 - 
 - GL_ARB_occlusion_query
 -    Useful for visibility-based culling.
 - 
 - GL_ARB_texture_non_power_of_two
 -    Removes the restriction that texture dimensions must be powers of two.
 - 
 - GL_ARB_vertex_buffer_object
 -    Allows server-side vertex arrays, optimized host/card data transfers, etc.
 - 
 - GL_ARB_point_sprite
 -    ARB-approved version of GL_NV_point_sprite.  Basically allows textures
 -    to be applied to points.
 - 
 - GL_IBM_multimode_draw_arrays
 -    Allows multiple vertex arrays to be drawn with one call, including arrays
 -    of different types of primitives.
 - 
 - GL_SUN_multi_draw_arrays
 -    An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4.
 - 
 - Faster glDrawPixels / glCopyPixels in X11 driver
 -    If your X screen is 32bpp, glDrawPixels to the front color buffer will
 -    be accelerated (via XPutImage()) if the image format is GL_BGRA and the
 -    type is GL_UNSIGNED_BYTE.  No raster operations, such as depth test,
 -    blend, fog, etc. can be enabled.
 - 
 -    If your X screen is 16bpp, glDrawPixels to the front color buffer will
 -    be accelerated (via XPutImage()) if the image format is GL_RGB and the
 -    type is GL_UNSIGNED_SHORT_5_6_5.  No raster operations, such as depth
 -    test, blend, fog, etc. can be enabled.
 - 
 -    glCopyPixels() calls for the front color buffer will be accelerated
 -    (via XCopyArea()) if no raster operations, such as depth test, blend,
 -    fog, pixel zoom, etc. are enabled.
 - 
 -    The speed-up over typical software rendering is a factor of 10 for
 -    glDrawPixels and 100 for glCopyPixels.
 - 
 - 
 - With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object,
 - GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports
 - all the new features of OpenGL 1.5.  Mesa 6.0 (the next stable release)
 - will advertise GL_VERSION = "1.5".
 -  
 - 
 - 
 - Vertex/Fragment program debugger
 - --------------------------------
 - 
 - GL_MESA_program_debug is an experimental extension to support
 - interactive debugging of vertex and fragment programs.  See the
 - docs/MESA_program_debug.spec file for details.
 - 
 - The bulk of the vertex/fragment program debugger is implemented
 - outside of Mesa.  The GL_MESA_program_debug extension just has minimal
 - hooks for stopping running programs and inspecting programs.
 - 
 - The progs/tests/debugger.c (only in CVS) program is an example of how
 - the extension can be used.  Presently, the debugger code and demo code
 - is in the same file.  Eventually the debugger code should be moved
 - into a reusable module.
 - 
 - As it is now, the demo lets you set breakpoings in vertex/fragment
 - programs, single step, and print intermediate register values.  It's
 - basically just a proof of concept.
 - 
 - 
 - 
 - Directory tree reorganization
 - -----------------------------
 - 
 - The directory structure for Mesa has been overhauled to improve its layout.
 - All source code for Mesa, GLU, GLUT, etc is now under the src/ directory
 - in appropriate subdirectories.
 - 
 - The Mesa source code and drivers has been reorganized under src/mesa/.
 - 
 - All demonstration programs and tests are now in subdirectories under progs/.
 - 
 - 
 - 
 - Build System Changes
 - --------------------
 - 
 - The GNU automake/autoconf support has been removed.  As it was, it seldom
 - worked on anything but Linux.  The Mesa developers aren't big fans of
 - automake/autoconf/libtool and didn't have the time to maintain it.
 - If someone wants to contribute new automake/autoconf support (and is
 - willing to maintain it), it may be re-incorporated into Mesa, subject
 - to some requirements.
 - 
 - The "old style" makefile system has been updated:
 -    1. Make-config has been trimmed down to fewer, modern configurations.
 -    2. Most of the bin/mklib.* scripts have been rolled into a new "mklib"
 -       script that works on all sorts of systems.  There are probably some
 -       bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5.
 -       Improvements/contributes are greatly appreciated.
 -    3. The Makefile.X11 files have been cleaned up in various ways
 - 
 - 
 - 
 - Source File Changes
 - -------------------
 - 
 - The mmath.[ch] files are obsolete.  Their contents have been moved
 - into the imports.[ch] and macros.[ch] files.
 - 
 - The files related to vertex and fragment programming have changed.
 - Old files:
 - 	vpexec.[ch]
 - 	vpparse.[ch]
 - 	vpstate.[ch]
 - New files:
 - 	program.[ch]              - generic ARB/NV program code
 - 	arbprogram.[ch]           - ARB program API functions
 - 	arbfragparse.[ch]         - ARB fragment program parsing
 - 	arbvertparse.[ch]         - ARB vertex program parsing
 - 	arbparse.[ch]             - ARB vertex/fragment parsing
 - 	arbparse_syn.h            - vertex/fragment program syntax
 - 	nvprogram.[ch]            - NV program API functions
 - 	nvvertprog.h              - NV vertex program definitions
 - 	nvfragprog.h              - NV fragment program definitions
 - 	nvvertparse.[ch]          - NV vertex program parser
 - 	nvfragparse.[ch]          - NV fragment program parser
 - 	nvvertexec.[ch]           - NV vertex program execution
 - 	swrast/s_nvfragprog.[ch]  - NV fragment program execution
 - 
 - The files related to per-vertex handling have changed.
 - Old files:
 - 	tnl/t_eval_api.c          - old per-vertex code
 - 	tnl/t_imm_alloc.c         - old per-vertex code
 - 	tnl/t_imm_api.c           - old per-vertex code
 - 	tnl/t_imm_debug.c         - old per-vertex code
 - 	tnl/t_imm_dlist.c         - old per-vertex code
 - 	tnl/t_imm_elt.c           - old per-vertex code
 - 	tnl/t_imm_eval.c          - old per-vertex code
 - 	tnl/t_imm_exec.c          - old per-vertex code
 - 	tnl/t_imm_fixup.c         - old per-vertex code
 - 	tnl/t_vtx_sse.c           - old per-vertex code
 - 	tnl/t_vtx_x86.c           - old per-vertex code
 - New files:
 - 	tnl/t_save_api.c          - new per-vertex code
 - 	tnl/t_save_loopback.c     - new per-vertex code
 - 	tnl/t_save_playback.c     - new per-vertex code
 - 	tnl/t_vtx_eval.c          - old per-vertex code
 - 
 - Other new files:
 - 	bufferobj.[ch]		- GL_ARB_vertex_buffer_object functions
 - 	version.h		- defines the Mesa version info
 - 
 - Other removed files:
 - 	swrast/s_histogram.[ch]   - moved into src/histogram.c
 - 
 - 
 - 
 - Other Changes
 - -------------
 - 
 - The ctx->Driver.CreateTexture function has been removed - it wasn't used.
 - 
 - New device driver hook functions:
 -    NewTextureObject   - used to allocate struct gl_texture_objects
 -    NewTextureImage    - used to allocate struct gl_texture_images
 - 
 - New ctx->Texture._EnabledCoordUnits field:
 -    With the addition of GL_NV_fragment_program we may need to interpolate
 -    various sets of texture coordinates even when the corresponding texture
 -    unit is not enabled.  That is, glEnable(GL_TEXTURE_xD) may never get
 -    called but we still may have to interpolate texture coordinates across
 -    triangles so that the fragment program will get them.
 -    This new field indicates which sets of texture coordinates are needed.
 -    If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the
 -    same bit MUST be set in ctx->Texture._EnabledCoordUnits.
 - 
 - The ctx->_TriangleCaps field is deprecated.
 -    Instead of testing the DD_* bits in _TriangleCaps, you should instead
 -    directly test the relevant state variables, or use one of the helper
 -    functions like NEED_SECONDARY_COLOR() at the bottom of context.h
 -    While testing _TriangleCaps bits was fast, it was kludgey, and setting
 -    the bits in the first place could be error prone.
 - 
 - New vertex processing code.
 -    The code behind glBegin, glEnd, glVertex, glNormal, etc. has been
 -    totally rewritten.  It's a cleaner implementation now and should use
 -    less memory. (Keith)
 - 
 - 
 - 
 - To Do
 - -----
 - Add screen-awareness to fakeglx.c
 - 
 - 
 - 
 - 
 - Device Driver Status
 - --------------------
 - 
 - A number of Mesa's software drivers haven't been actively maintained for
 - some time.  We rely on volunteers to maintain many of these drivers.
 - Here's the current status of all included drivers:
 - 
 - 
 - Driver			Status
 - ----------------------	---------------------
 - XMesa (Xlib)		implements OpenGL 1.4
 - OSMesa (off-screen)	implements OpenGL 1.4
 - FX (3dfx Voodoo1/2)	implements OpenGL 1.3
 - SVGA			implements OpenGL 1.3
 - Wind River UGL		implements OpenGL 1.3
 - Windows/Win32		implements OpenGL 1.4
 - DJGPP			implements OpenGL 1.4
 - GGI			implements OpenGL 1.3
 - BeOS			implements OpenGL 1.4
 - Allegro			needs updating
 - D3D			needs updating
 - 
 - Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the
 - driver call the _mesa_enable_1_4_extensions() function.
 - 
 - 
 - ----------------------------------------------------------------------
 
 
  |