mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
270 lines
7.6 KiB
270 lines
7.6 KiB
|
|
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. |
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|