<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Mesa Release Notes</title>
  <link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>

<h1>Mesa 7.4 Release Notes / 27 March 2009</h1>

<p>
Mesa 7.4 is a stable development release fixing bugs since the 7.3 release.
</p>
<p>
Mesa 7.4 implements the OpenGL 2.1 API, but the version reported by
glGetString(GL_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 2.1.
</p>
<p>
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
for DRI hardware acceleration.
</p>


<h2>MD5 checksums</h2>
<pre>
ed6bd7437177307e51e16d0c7c381dfa  MesaLib-7.4.tar.gz
7ecddb341a2691e0dfdb02f697109834  MesaLib-7.4.tar.bz2
433e823f8245f9fd5f397e7b719a8e47  MesaLib-7.4.zip
656eee6128016fb237e01aa8dabbc703  MesaDemos-7.4.tar.gz
02816f10f30b1dc5e069e0f68c177c98  MesaDemos-7.4.tar.bz2
44a70d6db4aa4c64ecc47871b6aceee8  MesaDemos-7.4.zip
25f80db4f8645cd3e58e2c9af53ec341  MesaGLUT-7.4.tar.gz
04ec01caebde44f5b0d619f00716b368  MesaGLUT-7.4.tar.bz2
019dc213baecaa3cb1278847d41b8591  MesaGLUT-7.4.zip
</pre>


<h2>New features</h2>
<ul>
<li>Added MESA_GLX_FORCE_DIRECT env var for Xlib/software driver
<li>GLSL version 1.20 is returnd by the GL_SHADING_LANGUAGE_VERSION query
</ul>


<h2>Bug fixes</h2>
<ul>
<li>glGetActiveUniform() returned wrong size for some array types
<li>Fixed some error checking in glUniform()
<li>Fixed a potential glTexImage('proxy target') segfault
<li>Fixed bad reference counting for 1D/2D texture arrays
<li>Fixed VBO + glPush/PopClientAttrib() bug #19835
<li>Assorted i965 driver bug fixes
<li>Fixed a Windows compilation failure in s_triangle.c
<li>Fixed a GLSL array indexing bug
<li>Fixes for building on Haiku
</ul>

<h2>Changes</h2>
<ul>
<li>Updated GL/glxext.h to version 48
<li>Assorted updates for building on Solaris
</ul>



<h2>Driver Status</h2>

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

</body>
</html>
