228 lines
6.7 KiB
Groff
228 lines
6.7 KiB
Groff
|
|
||
|
Mesa 3.5 release notes
|
||
|
|
||
|
June 21, 2001
|
||
|
|
||
|
PLEASE READ!!!!
|
||
|
|
||
|
|
||
|
|
||
|
Introduction
|
||
|
------------
|
||
|
|
||
|
Mesa uses an even/odd version number scheme like the Linux kernel.
|
||
|
Odd numbered versions (such as 3.5) designate new developmental releases.
|
||
|
Even numbered versions (such as 3.4) designate stable releases.
|
||
|
|
||
|
The biggest change in Mesa 3.5 is a complete overhaul of the source
|
||
|
code in order to make it more modular. This was driven by the DRI
|
||
|
hardware drivers. It simplifies the DRI drivers and opens the door
|
||
|
to hardware transform/clip/lighting (TCL). Keith Whitwell can take
|
||
|
the credit for that.
|
||
|
|
||
|
|
||
|
|
||
|
Driver Support
|
||
|
--------------
|
||
|
|
||
|
The device driver interface in Mesa 3.5 has changed a lot since Mesa 3.4
|
||
|
Not all of the older Mesa drivers have been updated. Here's the status:
|
||
|
|
||
|
Driver Status
|
||
|
---------------------- -----------
|
||
|
XMesa (Xlib) updated
|
||
|
OSMesa (off-screen) updated
|
||
|
FX (3dfx Voodoo1/2) updated
|
||
|
SVGA updated
|
||
|
GGI not updated
|
||
|
Windows/Win32 not updated
|
||
|
DOS/DJGPP not updated
|
||
|
BeOS not updated
|
||
|
Allegro not updated
|
||
|
D3D not updated
|
||
|
DOS not updated
|
||
|
|
||
|
We're looking for volunteers to update the remaining drivers. Please
|
||
|
post to the Mesa3d-dev mailing list if you can help.
|
||
|
|
||
|
|
||
|
|
||
|
GLU 1.3
|
||
|
-------
|
||
|
|
||
|
Mesa 3.5 includes the SGI Sample Implementation (SI) GLU library.
|
||
|
This version of GLU supports the GLU 1.3 specification. The old
|
||
|
Mesa GLU library implemented the 1.1 specification. The SI GLU
|
||
|
library should work much better.
|
||
|
|
||
|
You'll need a C++ compiler to compile the SI GLU library. This may
|
||
|
be a problem on some systems.
|
||
|
|
||
|
|
||
|
|
||
|
New Extensions
|
||
|
--------------
|
||
|
|
||
|
GL_EXT_convolution
|
||
|
Adds image convolution to glRead/Copy/DrawPixels/TexImage.
|
||
|
|
||
|
GL_ARB_imaging
|
||
|
This is the optional imaging subset of OpenGL 1.2.
|
||
|
It's the GL_EXT_convolution, GL_HP_convolution_border_modes,
|
||
|
GL_EXT_histogram, GL_EXT_color_table, GL_EXT_color_subtable
|
||
|
GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract
|
||
|
and GL_SGI_color_matrix extensions all rolled together.
|
||
|
This is supported in all software renderers but not in all
|
||
|
hardware drivers (3dfx for example).
|
||
|
|
||
|
GL_ARB_texture_compression
|
||
|
This is supported in Mesa but only used by the 3dfx DRI drivers
|
||
|
for Voodoo4 and later.
|
||
|
|
||
|
GL_ARB_texture_env_add
|
||
|
This is identical to GL_EXT_texture_env_add.
|
||
|
|
||
|
GL_NV_blend_square
|
||
|
Adds extra blend source and dest factors which allow squaring
|
||
|
of color values.
|
||
|
|
||
|
GL_EXT_fog_coord
|
||
|
Allows specification of a per-vertex fog coordinate instead of
|
||
|
having fog always computed from the eye distance.
|
||
|
|
||
|
GL_EXT_secondary_color
|
||
|
Allows specifying the secondary (specular) color for each vertex
|
||
|
instead of getting it only from lighting in GL_SEPARATE_SPECULAR_COLOR
|
||
|
mode.
|
||
|
|
||
|
GL_ARB_texture_env_combine
|
||
|
Basically the same as GL_EXT_texture_env_combine
|
||
|
|
||
|
GL_ARB_texture_env_add extension
|
||
|
Texture addition mode.
|
||
|
|
||
|
GL_ARB_texture_env_dot3 extension
|
||
|
Dot product texture environment.
|
||
|
|
||
|
GL_ARB_texture_border_clamp
|
||
|
Adds GL_CLAMP_TO_BORDER_ARB texture wrap mode
|
||
|
|
||
|
GL_SGIX_depth_texture, GL_SGIX_shadow and GL_SGIX_shadow_ambient
|
||
|
Implements a shadow casting algorithm based on depth map textures
|
||
|
|
||
|
GL_SGIS_generate_mipmap
|
||
|
Automatically generate lower mipmap images whenever the base mipmap
|
||
|
image is changed with glTexImage, glCopyTexImage, etc.
|
||
|
|
||
|
|
||
|
|
||
|
libOSMesa.so
|
||
|
------------
|
||
|
|
||
|
libOSMesa.so is a new library which contains the OSMesa interface for
|
||
|
off-screen rendering. Apps which need the OSMesa interface should link
|
||
|
with both -lOSMesa and -lGL. This change was made so that stand-alone
|
||
|
Mesa works the same way as XFree86/DRI's libGL.
|
||
|
|
||
|
|
||
|
|
||
|
Device Driver Changes / Core Mesa Changes
|
||
|
-----------------------------------------
|
||
|
|
||
|
The ctx->Driver.LogicOp() function has been removed. It used to
|
||
|
be called during state update in order to determine if the driver
|
||
|
could do glLogicOp() operations, and if not, set the SWLogicOpEnabled
|
||
|
flag. Drivers should instead examine the LogicOp state themselves
|
||
|
and choose specialized point, line, and triangle functions appropriately,
|
||
|
or fall back to software rendering. The Xlib driver was the only driver
|
||
|
to use this function. And since the Xlib driver no longer draws
|
||
|
points, lines or triangles using Xlib, the LogicOp function isn't needed.
|
||
|
|
||
|
The ctx->Driver.Dither() function has been removed. Drivers should
|
||
|
detect dither enable/disable via ctx->Driver.Enable() instead.
|
||
|
|
||
|
The ctx->Driver.IndexMask() and ctx->Driver.ColorMask() functions
|
||
|
are now just called from glIndexMask and glColorMask like the other
|
||
|
GL state-changing functions. They are no longer called from inside
|
||
|
gl_update_state(). Also, they now return void. The change was made
|
||
|
mostly for sake of uniformity.
|
||
|
|
||
|
The NEW_DRVSTATE[0123] flags have been removed. They weren't being used
|
||
|
and are obsolete w.r.t. the way state updates are done in DRI drivers.
|
||
|
|
||
|
|
||
|
Removed obsolete gl_create_visual() and gl_destroy_visual().
|
||
|
|
||
|
Renamed functions (new namespace):
|
||
|
|
||
|
old new
|
||
|
gl_create_framebuffer _mesa_create_framebuffer
|
||
|
gl_destroy_framebuffer _mesa_destroy_framebuffer
|
||
|
gl_create_context _mesa_create_context
|
||
|
gl_destroy_context _mesa_destroy_context
|
||
|
gl_context_initialize _mesa_context_initialize
|
||
|
gl_copy_context _mesa_copy_context
|
||
|
gl_make_current _mesa_make_current
|
||
|
gl_make_current2 _mesa_make_current2
|
||
|
gl_get_current_context _mesa_get_current_context
|
||
|
gl_flush_vb _mesa_flush_vb
|
||
|
gl_warning _mesa_warning
|
||
|
gl_compile_error _mesa_compile_error
|
||
|
|
||
|
|
||
|
All the drivers have been updated, but not all of them have been
|
||
|
tested since I can't test some platforms (DOS, Windows, Allegro, etc).
|
||
|
|
||
|
|
||
|
X/Mesa Driver
|
||
|
-------------
|
||
|
|
||
|
The source files for the X/Mesa driver in src/X have been renamed.
|
||
|
The xmesa[1234].c files are gone. The new files are xm_api.c,
|
||
|
xm_dd.c, xm_line.c, xm_span.c and xm_tri.c.
|
||
|
|
||
|
|
||
|
|
||
|
Multitexture
|
||
|
------------
|
||
|
|
||
|
Eight texture units are now supported by default.
|
||
|
|
||
|
|
||
|
|
||
|
OpenGL SI related changes
|
||
|
-------------------------
|
||
|
|
||
|
In an effort to make Mesa's internal interfaces more like the OpenGL
|
||
|
SI interfaces, a number of changes have been made:
|
||
|
|
||
|
1. Importing the SI's glcore.h file which defines a number of
|
||
|
interface structures like __GLimports and __GLexports.
|
||
|
|
||
|
2. Renamed "struct gl_context" to "struct __GLcontextRec".
|
||
|
|
||
|
3. Added __glCoreCreateContext() and __glCoreNopDispatch() functions.
|
||
|
|
||
|
4. The GLcontext member Visual is no longer a pointer.
|
||
|
|
||
|
5. New file: imports.c to setup default import functions for Mesa.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
16-bit color channels
|
||
|
---------------------
|
||
|
|
||
|
There's experimental support for 16-bit color channels (64-bit pixels)
|
||
|
in Mesa 3.5. Only the OSMesa interface can be used for 16-bit rendering.
|
||
|
Type "make linux-osmesa16" in the top-level directory to build the
|
||
|
special libOSMesa16.so library.
|
||
|
|
||
|
This hasn't been tested very thoroughly yet so please file bug reports
|
||
|
if you have trouble.
|
||
|
|
||
|
In the future I hope to implement support for 32-bit, floating point
|
||
|
color channels.
|
||
|
|
||
|
----------------------------------------------------------------------
|