123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
-
- 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.
-
-
-
- ----------------------------------------------------------------------
- $Id: RELNOTES-3.3,v 1.8 2000/07/21 16:26:41 brianp Exp $
|