<HTML>

<TITLE>Mesa Release Notes</TITLE>

<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>

<BODY>

<body bgcolor="#eeeeee">

<H1>Mesa 6.5 Release Notes / March 31, 2006</H1>

<p>
Mesa 6.5 is a new development release.
</p>


<h2>MD5 checksums</h2>
<pre>
657be3b92f6dabc78a67ed9cb8d67813  MesaLib-6.5.tar.gz
61beda590bfc5b4a12e979d5f2d70d7a  MesaLib-6.5.tar.bz2
19d48b872d579d4f91466060804a59ac  MesaLib-6.5.zip
694ad3a7007010c7418a9c72d1cba5b7  MesaDemos-6.5.tar.gz
ab95b590dcd640726a2d89e62068c66e  MesaDemos-6.5.tar.bz2
b792c303fefd87294488e2b7eab976e5  MesaDemos-6.5.zip
ac1d585483617db0c91e5c15cb5ec3a3  MesaGLUT-6.5.tar.gz
59f0bf2b2ffb67fe23ee479f9b044f31  MesaGLUT-6.5.tar.bz2
005decb2136718e22222ac1c4805cd15  MesaGLUT-6.5.zip
</pre>



<h2>New Features</h2>
<ul>
<li>OpenGL Shading language support
<br>
   This includes the GL_ARB_shader_objects, GL_ARB_shading_language_100,
   GL_ARB_vertex_shader and GL_ARB_fragment_shader extensions.  Most of
   the work was done by Michal Krol.
   There's probably a fair number of bugs since this is a pretty large,
   complicated body of code.
<br>
   The OpenGL 2.0 interface to these features will be implemented in a
   future version of Mesa,

<li>GL_EXT_timer_query
<br>
   Used to measure the time of OpenGL operations at high precision.
   Only supported in the software/Xlib driver at this time.

<li>GL_EXT_packed_depth_stencil
<br>
   Defines a new GL_DEPTH_STENCIL_EXT pixel format.

<li>GL_EXT_framebuffer_blit
<br>
   A simplified glCopyPixels-like feature for copying pixel rectangles.

<li>GL_ARB_half_float_pixel
<br>
   Adds a new half-precision floating point format for image transfers,
   such as for glDrawPixels, glReadPixels, glTexImage, etc.
</ul>

<h2>Changes</h2>
<ul>
<li>removed GL_HP_occlusion_test (use GL_ARB_occlusion_query instead)
<li>removed GL_SGIX/SGIS_pixel_texture extensions
</ul>
<h2>Bug fixes</h2>
<ul>
<li>fixed glxcontextmodes.c datatype problem (bug 5835)
<li>fixed aix-gcc build/install bugs (bug 5874)
<li>fixed some bugs in texture env program generation
<li>glXCopyContext() didn't handle texture object bindings properly
<li>glXCopyContext() didn't copy all lighting state
<li>fixed FreeBSD config (Pedro Giffuni)
<li>fixed some minor framebuffer object bugs
<li>replaced dprintf() with _glu_printf() in GLU (bug 6244)
<li>fixed a number of thread safety bugs/regressions
<li>fixed a number of GLU tesselator bugs (John Shell, bug 6339)
<li>paletted texturing was broken w/ floating point palettes (K. Schultz)
<li>lots of assorted framebuffer object bug fixes
</ul>


<h2>Known Issues</h2>
<ul>
<li>Rendering to depth textures will not work.  Rendering to GL_DEPTH_STENCIL
textures should work.
</ul>


<h2>Driver Interface Changes</h2>
<ul>
<li>Stencil: The Driver.StencilOp/Func/Mask() functions have been replaced by
the two-sided versions: Driver.Stencil*Separate().
<li>Render-to-texture: The functions for rendering to textures have changed.
</ul>


<h2>To Do (someday) items</h2>
<ul>
<li>Switch to freeglut
<li>Increase MAX_DRAWBUFFERS
<li>Fix linux-glide target/driver.
<li>Fix lambda calculation for frag progs.
</ul>


<h2>Driver Status</h2>

<pre>
Driver			Status
----------------------	----------------------
DRI drivers		varies with the driver
XMesa/GLX (on Xlib)	implements OpenGL 1.5
OSMesa (off-screen)	implements OpenGL 1.5
Glide (3dfx Voodoo1/2)	implements OpenGL 1.3
SVGA			implements OpenGL 1.3
Wind River UGL		implements OpenGL 1.3
Windows/Win32		implements OpenGL 1.5
DJGPP			implements OpenGL 1.5
GGI			implements OpenGL 1.3
BeOS			implements OpenGL 1.5
Allegro			needs updating
D3D			needs updating
</pre>

</body>
</html>
