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.
-
-
- ----------------------------------------------------------------------
|