summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorThierry Reding <thierry@gilfi.de>2006-11-18 17:59:25 +0000
committerThierry Reding <thierry@gilfi.de>2006-11-18 17:59:25 +0000
commitbb44a8ae1f392d44b2f588c831101c865485bcfd (patch)
tree3c5e6aa649975c46d68c3f7745f6410ddac1f174 /docs
parentb5a5062176ffae31566f55db4eee6099d15ccf1f (diff)
Update to latest upstream release candidate.
Update patches.
Diffstat (limited to 'docs')
-rw-r--r--docs/RELNOTES-6.450
-rw-r--r--docs/RELNOTES-6.4.147
-rw-r--r--docs/RELNOTES-6.4.247
-rw-r--r--docs/RELNOTES-6.597
-rw-r--r--docs/contents.html2
-rw-r--r--docs/devinfo.html14
-rw-r--r--docs/dispatch.html274
-rw-r--r--docs/mangling.html8
-rw-r--r--docs/news.html85
-rw-r--r--docs/relnotes-6.4.1.html68
-rw-r--r--docs/relnotes-6.4.2.html75
-rw-r--r--docs/relnotes-6.4.html90
-rw-r--r--docs/relnotes-6.5.1.html74
-rw-r--r--docs/relnotes-6.5.2.html111
-rw-r--r--docs/relnotes-6.5.html131
-rw-r--r--docs/relnotes.html24
-rw-r--r--docs/sourcedocs.html17
-rw-r--r--docs/versions.html175
18 files changed, 878 insertions, 511 deletions
diff --git a/docs/RELNOTES-6.4 b/docs/RELNOTES-6.4
deleted file mode 100644
index a12600c3c83..00000000000
--- a/docs/RELNOTES-6.4
+++ /dev/null
@@ -1,50 +0,0 @@
-
- Mesa 6.4 Release Notes
-
- October 24, 2005
-
-
-
-Introduction
-------------
-
-Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 6.3) designate new developmental releases.
-Even numbered versions (such as 6.4) designate stable releases.
-
-
-6.4 is a bug-fix release. See the VERSIONS file for details.
-
-
-
-GLUT tarball
-------------
-
-Starting with 6.4, the GLUT library sources are distributed in a separate
-tarball. This was done at the request of Linux distro vendors who prefer
-to use freeglut.
-
-
-
-
-Driver Status
----------------------- ----------------------
-DRI drivers varies with the driver
-XMesa (Xlib) implements OpenGL 1.5
-OSMesa (off-screen) implements OpenGL 1.5
-Windows/Win32 implements OpenGL 1.5
-Glide (3dfx Voodoo1/2) requires updates
-SVGA requires updates
-DJGPP requires updates
-GGI requires updates
-BeOS requires updates
-Allegro requires updates
-D3D requires updates
-
-The drivers which require updates mostly need to be updated to work
-with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
-in Mesa 6.3.
-
-
-----------------------------------------------------------------------
-$Id: RELNOTES-6.4,v 3.1 2005/10/24 23:33:27 brianp Exp $
diff --git a/docs/RELNOTES-6.4.1 b/docs/RELNOTES-6.4.1
deleted file mode 100644
index 4a867e77825..00000000000
--- a/docs/RELNOTES-6.4.1
+++ /dev/null
@@ -1,47 +0,0 @@
-
- Mesa 6.4.1 Release Notes
-
-
-Introduction
-------------
-
-Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 6.3) designate new developmental releases.
-Even numbered versions (such as 6.4) designate stable releases.
-
-
-6.4.1 is a bug-fix release. See the VERSIONS file for details.
-
-
-
-GLUT tarball
-------------
-
-Starting with 6.4, the GLUT library sources are distributed in a separate
-tarball. This was done at the request of Linux distro vendors who prefer
-to use freeglut.
-
-
-
-
-Driver Status
----------------------- ----------------------
-DRI drivers varies with the driver
-XMesa (Xlib) implements OpenGL 1.5
-OSMesa (off-screen) implements OpenGL 1.5
-Windows/Win32 implements OpenGL 1.5
-Glide (3dfx Voodoo1/2) requires updates
-SVGA requires updates
-DJGPP requires updates
-GGI requires updates
-BeOS requires updates
-Allegro requires updates
-D3D requires updates
-
-The drivers which require updates mostly need to be updated to work
-with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
-in Mesa 6.3.
-
-
-----------------------------------------------------------------------
-$Id: RELNOTES-6.4.1,v 3.1 2006/02/03 17:21:54 brianp Exp $
diff --git a/docs/RELNOTES-6.4.2 b/docs/RELNOTES-6.4.2
deleted file mode 100644
index f9312157b1a..00000000000
--- a/docs/RELNOTES-6.4.2
+++ /dev/null
@@ -1,47 +0,0 @@
-
- Mesa 6.4.2 Release Notes
-
-
-Introduction
-------------
-
-Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 6.3) designate new developmental releases.
-Even numbered versions (such as 6.4) designate stable releases.
-
-
-6.4.2 is a minor bug-fix release. See the VERSIONS file for details.
-
-
-
-GLUT tarball
-------------
-
-Starting with 6.4, the GLUT library sources are distributed in a separate
-tarball. This was done at the request of Linux distro vendors who prefer
-to use freeglut.
-
-
-
-
-Driver Status
----------------------- ----------------------
-DRI drivers varies with the driver
-XMesa (Xlib) implements OpenGL 1.5
-OSMesa (off-screen) implements OpenGL 1.5
-Windows/Win32 implements OpenGL 1.5
-Glide (3dfx Voodoo1/2) requires updates
-SVGA requires updates
-DJGPP requires updates
-GGI requires updates
-BeOS requires updates
-Allegro requires updates
-D3D requires updates
-
-The drivers which require updates mostly need to be updated to work
-with the new gl_renderbuffer / gl_framebuffer infrastructure introduced
-in Mesa 6.3.
-
-
-----------------------------------------------------------------------
-$Id: RELNOTES-6.4.2,v 3.1 2006/02/03 17:21:54 brianp Exp $
diff --git a/docs/RELNOTES-6.5 b/docs/RELNOTES-6.5
deleted file mode 100644
index f51b1bde386..00000000000
--- a/docs/RELNOTES-6.5
+++ /dev/null
@@ -1,97 +0,0 @@
-
- Mesa 6.5 Release Notes
-
-
-
-Introduction
-------------
-
-Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 6.5) designate new developmental releases.
-Even numbered versions (such as 6.4) designate stable releases.
-
-
-
-New Features
-------------
-
-OpenGL Shading language support
- 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.
-
- The OpenGL 2.0 interface to these features will be implemented in a
- future version of Mesa,
-
-GL_EXT_timer_query
- Used to measure the time of OpenGL operations at high precision.
- Only supported in the software/Xlib driver at this time.
-
-GL_EXT_packed_depth_stencil
- Defines a new GL_DEPTH_STENCIL_EXT pixel format.
-
-GL_EXT_framebuffer_blit
- A simplified glCopyPixels-like feature for copying pixel rectangles.
-
-GL_ARB_half_float_pixel
- Adds a new half-precision floating point format for image transfers,
- such as for glDrawPixels, glReadPixels, glTexImage, etc.
-
-
-
-Removed Extensions
-------------------
-
-The following extensions have been removed:
-
- GL_HP_occlusion_test - this is superceded by GL_ARB_occlusion_query.
-
-
-
-Known Issues
-------------
-
-Rendering to depth textures will not work. Rendering to GL_DEPTH_STENCIL
-textures should work.
-
-
-
-Driver Interface Changes
-------------------------
-
-Stencil: The Driver.StencilOp/Func/Mask() functions have been replaced by
-the two-sided versions: Driver.Stencil*Separate().
-
-Render-to-texture: The functions for rendering to textures have changed.
-
-
-
-To Do (someday) items
----------------------
- Switch to freeglut
- Increase MAX_DRAWBUFFERS
- Fix linux-glide target/driver.
- Fix lambda calculation for frag progs.
-
-
-
-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
-
-
-----------------------------------------------------------------------
-$Id: RELNOTES-6.5,v 3.4 2006/03/29 04:53:02 brianp Exp $
diff --git a/docs/contents.html b/docs/contents.html
index 40cefa26e7a..9f09df97374 100644
--- a/docs/contents.html
+++ b/docs/contents.html
@@ -28,7 +28,6 @@ a:visited {
<li><a href="systems.html" target="MainFrame">Platforms and Drivers</a>
<li><a href="license.html" target="MainFrame">License & Copyright</a>
<li><a href="faq.html" target="MainFrame">FAQ</a>
-<li><a href="versions.html" target="MainFrame">Version History</a>
<li><a href="relnotes.html" target="MainFrame">Release Notes</a>
<li><a href="thanks.html" target="MainFrame">Acknowledgements</a>
<li><a href="conform.html" target="MainFrame">Conformance Testing</a>
@@ -74,6 +73,7 @@ a:visited {
<li><a href="fbdev-dri.html" target="MainFrame">fbdev/DRI Environment</a>
<li><a href="glfbdev-driver.html" target="MainFrame">glFBDev Driver</a>
<LI><A HREF="custom.html" target="MainFrame">Custom Development</A>
+<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
</ul>
<b>Links</b>
diff --git a/docs/devinfo.html b/docs/devinfo.html
index 4d4730be757..cce14d73a36 100644
--- a/docs/devinfo.html
+++ b/docs/devinfo.html
@@ -34,11 +34,15 @@ To add a new GL extension to Mesa you have to do at least the following.
corresponding Python scripts.
</li>
<li>
- Find an existing extension that's similar to the new one and search
- the sources for code related to that extension.
- Implement new code as needed.
- In general, new state variables will be added to mtypes.h. If the
- extension is rather large, try to implement it in a new source file.
+ Add a new entry to the <code>gl_extensions</code> struct in mtypes.h
+</li>
+<li>
+ Update the <code>extensions.c</code> file.
+</li>
+<li>
+ From this point, the best way to proceed is to find another extension,
+ similar to the new one, that's already implemented in Mesa and use it
+ as an example.
</li>
<li>
If the new extension adds new GL state, the functions in get.c, enable.c
diff --git a/docs/dispatch.html b/docs/dispatch.html
new file mode 100644
index 00000000000..b9ea8822e60
--- /dev/null
+++ b/docs/dispatch.html
@@ -0,0 +1,274 @@
+<HTML>
+<HEAD>
+<TITLE>GL Dispatch in Mesa</TITLE>
+<LINK REL="stylesheet" TYPE="text/css" HREF="mesa.css">
+</HEAD>
+
+<BODY>
+<H1>GL Dispatch in Mesa</H1>
+
+<p>Several factors combine to make efficient dispatch of OpenGL functions
+fairly complicated. This document attempts to explain some of the issues
+and introduce the reader to Mesa's implementation. Readers already familiar
+with the issues around GL dispatch can safely skip ahead to the <A
+HREF="#overview">overview of Mesa's implementation</A>.</p>
+
+<H2>1. Complexity of GL Dispatch</H2>
+
+<p>Every GL application has at least one object called a GL <em>context</em>.
+This object, which is an implicit parameter to ever GL function, stores all
+of the GL related state for the application. Every texture, every buffer
+object, every enable, and much, much more is stored in the context. Since
+an application can have more than one context, the context to be used is
+selected by a window-system dependent function such as
+<tt>glXMakeContextCurrent</tt>.</p>
+
+<p>In environments that implement OpenGL with X-Windows using GLX, every GL
+function, including the pointers returned by <tt>glXGetProcAddress</tt>, are
+<em>context independent</em>. This means that no matter what context is
+currently active, the same <tt>glVertex3fv</tt> function is used.</p>
+
+<p>This creates the first bit of dispatch complexity. An application can
+have two GL contexts. One context is a direct rendering context where
+function calls are routed directly to a driver loaded within the
+application's address space. The other context is an indirect rendering
+context where function calls are converted to GLX protocol and sent to a
+server. The same <tt>glVertex3fv</tt> has to do the right thing depending
+on which context is current.</p>
+
+<p>Highly optimized drivers or GLX protocol implementations may want to
+change the behavior of GL functions depending on current state. For
+example, <tt>glFogCoordf</tt> may operate differently depending on whether
+or not fog is enabled.</p>
+
+<p>In multi-threaded environments, it is possible for each thread to have a
+differnt GL context current. This means that poor old <tt>glVertex3fv</tt>
+has to know which GL context is current in the thread where it is being
+called.</p>
+
+<A NAME="overview"/>
+<H2>2. Overview of Mesa's Implementation</H2>
+
+<p>Mesa uses two per-thread pointers. The first pointer stores the address
+of the context current in the thread, and the second pointer stores the
+address of the <em>dispatch table</em> associated with that context. The
+dispatch table stores pointers to functions that actually implement
+specific GL functions. Each time a new context is made current in a thread,
+these pointers a updated.</p>
+
+<p>The implementation of functions such as <tt>glVertex3fv</tt> becomes
+conceptually simple:</p>
+
+<ul>
+<li>Fetch the current dispatch table pointer.</li>
+<li>Fetch the pointer to the real <tt>glVertex3fv</tt> function from the
+table.</li>
+<li>Call the real function.</li>
+</ul>
+
+<p>This can be implemented in just a few lines of C code. The file
+<tt>src/mesa/glapi/glapitemp.h</tt> contains code very similar to this.</p>
+
+<blockquote>
+<table border="1">
+<tr><td><pre>
+void glVertex3f(GLfloat x, GLfloat y, GLfloat z)
+{
+ const struct _glapi_table * const dispatch = GET_DISPATCH();
+
+ (*dispatch-&gt;Vertex3f)(x, y, z);
+}</pre></td></tr>
+<tr><td>Sample dispatch function</td></tr></table>
+</blockquote>
+
+<p>The problem with this simple implementation is the large amount of
+overhead that it adds to every GL function call.</p>
+
+<p>In a multithreaded environment, a niave implementation of
+<tt>GET_DISPATCH</tt> involves a call to <tt>pthread_getspecific</tt> or a
+similar function. Mesa provides a wrapper function called
+<tt>_glapi_get_dispatch</tt> that is used by default.</p>
+
+<H2>3. Optimizations</H2>
+
+<p>A number of optimizations have been made over the years to diminish the
+performance hit imposed by GL dispatch. This section describes these
+optimizations. The benefits of each optimization and the situations where
+each can or cannot be used are listed.</p>
+
+<H3>3.1. Dual dispatch table pointers</H3>
+
+<p>The vast majority of OpenGL applications use the API in a single threaded
+manner. That is, the application has only one thread that makes calls into
+the GL. In these cases, not only do the calls to
+<tt>pthread_getspecific</tt> hurt performance, but they are completely
+unnecessary! It is possible to detect this common case and avoid these
+calls.</p>
+
+<p>Each time a new dispatch table is set, Mesa examines and records the ID
+of the executing thread. If the same thread ID is always seen, Mesa knows
+that the application is, from OpenGL's point of view, single threaded.</p>
+
+<p>As long as an application is single threaded, Mesa stores a pointer to
+the dispatch table in a global variable called <tt>_glapi_Dispatch</tt>.
+The pointer is also stored in a per-thread location via
+<tt>pthread_setspecific</tt>. When Mesa detects that an application has
+become multithreaded, <tt>NULL</tt> is stored in <tt>_glapi_Dispatch</tt>.</p>
+
+<p>Using this simple mechanism the dispatch functions can detect the
+multithreaded case by comparing <tt>_glapi_Dispatch</tt> to <tt>NULL</tt>.
+The resulting implementation of <tt>GET_DISPATCH</tt> is slightly more
+complex, but it avoids the expensive <tt>pthread_getspecific</tt> call in
+the common case.</p>
+
+<blockquote>
+<table border="1">
+<tr><td><pre>
+#define GET_DISPATCH() \
+ (_glapi_Dispatch != NULL) \
+ ? _glapi_Dispatch : pthread_getspecific(&_glapi_Dispatch_key)
+</pre></td></tr>
+<tr><td>Improved <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
+</blockquote>
+
+<H3>3.2. ELF TLS</H3>
+
+<p>Starting with the 2.4.20 Linux kernel, each thread is allocated an area
+of per-thread, global storage. Variables can be put in this area using some
+extensions to GCC. By storing the dispatch table pointer in this area, the
+expensive call to <tt>pthread_getspecific</tt> and the test of
+<tt>_glapi_Dispatch</tt> can be avoided.</p>
+
+<p>The dispatch table pointer is stored in a new variable called
+<tt>_glapi_tls_Dispatch</tt>. A new variable name is used so that a single
+libGL can implement both interfaces. This allows the libGL to operate with
+direct rendering drivers that use either interface. Once the pointer is
+properly declared, <tt>GET_DISPACH</tt> becomes a simple variable
+reference.</p>
+
+<blockquote>
+<table border="1">
+<tr><td><pre>
+extern __thread struct _glapi_table *_glapi_tls_Dispatch
+ __attribute__((tls_model("initial-exec")));
+
+#define GET_DISPATCH() _glapi_tls_Dispatch
+</pre></td></tr>
+<tr><td>TLS <tt>GET_DISPATCH</tt> Implementation</td></tr></table>
+</blockquote>
+
+<p>Use of this path is controlled by the preprocessor define
+<tt>GLX_USE_TLS</tt>. Any platform capable of using TLS should use this as
+the default dispatch method.</p>
+
+<H3>3.3. Assembly Language Dispatch Stubs</H3>
+
+<p>Many platforms has difficulty properly optimizing the tail-call in the
+dispatch stubs. Platforms like x86 that pass parameters on the stack seem
+to have even more difficulty optimizing these routines. All of the dispatch
+routines are very short, and it is trivial to create optimal assembly
+language versions. The amount of optimization provided by using assembly
+stubs varies from platform to platform and application to application.
+However, by using the assembly stubs, many platforms can use an additional
+space optimization (see <A HREF="#fixedsize">below</A>).</p>
+
+<p>The biggest hurdle to creating assembly stubs is handling the various
+ways that the dispatch table pointer can be accessed. There are four
+different methods that can be used:</p>
+
+<ol>
+<li>Using <tt>_glapi_Dispatch</tt> directly in builds for non-multithreaded
+environments.</li>
+<li>Using <tt>_glapi_Dispatch</tt> and <tt>_glapi_get_dispatch</tt> in
+multithreaded environments.</li>
+<li>Using <tt>_glapi_Dispatch</tt> and <tt>pthread_getspecific</tt> in
+multithreaded environments.</li>
+<li>Using <tt>_glapi_tls_Dispatch</tt> directly in TLS enabled
+multithreaded environments.</li>
+</ol>
+
+<p>People wishing to implement assembly stubs for new platforms should focus
+on #4 if the new platform supports TLS. Otherwise, implement #2 followed by
+#3. Environments that do not support multithreading are uncommon and not
+terribly relevant.</p>
+
+<p>Selection of the dispatch table pointer access method is controlled by a
+few preprocessor defines.</p>
+
+<ul>
+<li>If <tt>GLX_USE_TLS</tt> is defined, method #4 is used.</li>
+<li>If <tt>PTHREADS</tt> is defined, method #3 is used.</li>
+<li>If any of <tt>PTHREADS</tt>, <tt>USE_XTHREADS</tt>,
+<tt>SOLARIS_THREADS</tt>, <tt>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt>
+is defined, method #2 is used.</li>
+<li>If none of the preceeding are defined, method #1 is used.</li>
+</ul>
+
+<p>Two different techniques are used to handle the various different cases.
+On x86 and SPARC, a macro called <tt>GL_STUB</tt> is used. In the preamble
+of the assembly source file different implementations of the macro are
+selected based on the defined preprocessor variables. The assmebly code
+then consists of a series of invocations of the macros such as:
+
+<blockquote>
+<table border="1">
+<tr><td><pre>
+GL_STUB(Color3fv, _gloffset_Color3fv)
+</pre></td></tr>
+<tr><td>SPARC Assembly Implementation of <tt>glColor3fv</tt></td></tr></table>
+</blockquote>
+
+<p>The benefit of this technique is that changes to the calling pattern
+(i.e., addition of a new dispatch table pointer access method) require fewer
+changed lines in the assembly code.</p>
+
+<p>However, this technique can only be used on platforms where the function
+implementation does not change based on the parameters passed to the
+function. For example, since x86 passes all parameters on the stack, no
+additional code is needed to save and restore function parameters around a
+call to <tt>pthread_getspecific</tt>. Since x86-64 passes parameters in
+registers, varying amounts of code needs to be inserted around the call to
+<tt>pthread_getspecific</tt> to save and restore the GL function's
+parameters.</p>
+
+<p>The other technique, used by platforms like x86-64 that cannot use the
+first technique, is to insert <tt>#ifdef</tt> within the assembly
+implementation of each function. This makes the assembly file considerably
+larger (e.g., 29,332 lines for <tt>glapi_x86-64.S</tt> versus 1,155 lines for
+<tt>glapi_x86.S</tt>) and causes simple changes to the function
+implementation to generate many lines of diffs. Since the assmebly files
+are typically generated by scripts (see <A HREF="#autogen">below</A>), this
+isn't a significant problem.</p>
+
+<p>Once a new assembly file is created, it must be inserted in the build
+system. There are two steps to this. The file must first be added to
+<tt>src/mesa/sources</tt>. That gets the file built and linked. The second
+step is to add the correct <tt>#ifdef</tt> magic to
+<tt>src/mesa/main/dispatch.c</tt> to prevent the C version of the dispatch
+functions from being built.</p>
+
+<A NAME="fixedsize"/>
+<H3>3.4. Fixed-Length Dispatch Stubs</H3>
+
+<p>To implement <tt>glXGetProcAddress</tt>, Mesa stores a table that
+associates function names with pointers to those functions. This table is
+stored in <tt>src/mesa/glapi/glprocs.h</tt>. For different reasons on
+different platforms, storing all of those pointers is inefficient. On most
+platforms, including all known platforms that support TLS, we can avoid this
+added overhead.</p>
+
+<p>If the assembly stubs are all the same size, the pointer need not be
+stored for every function. The location of the function can instead be
+calculated by multiplying the size of the dispatch stub by the offset of the
+function in the table. This value is then added to the address of the first
+dispatch stub.</p>
+
+<p>This path is activated by adding the correct <tt>#ifdef</tt> magic to
+<tt>src/mesa/glapi/glapi.c</tt> just before <tt>glprocs.h</tt> is
+included.</p>
+
+<A NAME="autogen"/>
+<H2>4. Automatic Generation of Dispatch Stubs</H2>
+
+</BODY>
+</HTML>
diff --git a/docs/mangling.html b/docs/mangling.html
index cb19e7568a5..3f550ba5ec6 100644
--- a/docs/mangling.html
+++ b/docs/mangling.html
@@ -9,8 +9,8 @@
<H1>Function Name Mangling</H1>
<p>
-If you want to use Mesa and native OpenGL in the same application at
-the same time you may find it useful to compile Mesa with
+If you want to use both Mesa and another OpenGL library in the same
+application at the same time you may find it useful to compile Mesa with
<i>name mangling</i>.
This results in all the Mesa functions being prefixed with
<b>mgl</b> instead of <b>gl</b>.
@@ -18,9 +18,7 @@ This results in all the Mesa functions being prefixed with
<p>
To do this, recompile Mesa with the compiler flag -DUSE_MGL_NAMESPACE.
-Add the flag to the other compiler flags in Make-config (if using the
-old-style build system) or in src/Makefile if using GNU autoconf/
-automake to build Mesa.
+Add the flag to CFLAGS in the configuration file which you want to use.
</p>
diff --git a/docs/news.html b/docs/news.html
index 0c77ad5d30f..9cd622fe227 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -13,100 +13,37 @@
<h2>September 15, 2006</h2>
<p>
-Mesa 6.5.1 has been released. This is a new development release.
+<a href="relnotes-6.5.1.html">Mesa 6.5.1</a> has been released.
+This is a new development release.
</p>
-<a href="versions.html#6.5.1">Changes in version 6.5.1</a>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-TBD
-</pre>
<h2>March 31, 2006</h2>
<p>
-Mesa 6.5 has been released. This is a new development release.
+<a href="relnotes-6.5.html">Mesa 6.5</a> has been released.
+This is a new development release.
</p>
-<a href="versions.html#6.5">Changes in version 6.5</a>
-<p>
-The MD5 checksums are:
-</p>
-<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>February 2, 2006</h2>
<p>
-Mesa 6.4.2 has been released. This is primarily a bug-fix release.
-</p>
-<a href="versions.html#6.4.2">Changes in version 6.4.2</a>
-<p>
-The MD5 checksums are:
+<a href="relnotes-6.4.2.html">Mesa 6.4.2</a> has been released.
+This is stable, bug-fix release.
</p>
-<pre>
-cb0d745d520fa7c2bb9178058b763544 MesaLib-6.4.2.tar.gz
-7674d2c603b5834259e4e5a820cefd5b MesaLib-6.4.2.tar.bz2
-d224e1325b33ff71a0f3893fc6b4d594 MesaLib-6.4.2.zip
-d4b345d4588fc750cd3d34f3ac26673e MesaDemos-6.4.2.tar.gz
-9cae1ab874af533ce356bd7dfe2e0bb0 MesaDemos-6.4.2.tar.bz2
-2da6e1d1245e441d27813595c6ba50de MesaDemos-6.4.2.zip
-84427d18c3453f0ea52388eeba7169b5 MesaGLUT-6.4.2.tar.gz
-b157ba8ad1ea63260cf5339132e7aac6 MesaGLUT-6.4.2.tar.bz2
-fe1523744fc05edc3811dfc6a1bf4181 MesaGLUT-6.4.2.zip
-</pre>
<h2>November 29, 2005</h2>
<p>
-Mesa 6.4.1 has been released. This is a stable, bug-fix release.
+<a href="relnotes-6.4.1.html">Mesa 6.4.1</a> has been released.
+This is stable, bug-fix release.
</p>
-<a href="versions.html#6.4.1">Changes in version 6.4.1</a>
-<p>
-The MD5 checksums are:
-</p>
-<pre>
-698ceb574cf882b0226761f5913c0da9 MesaLib-6.4.1.tar.gz
-ea148c828ec6f645526451db1b8556f1 MesaLib-6.4.1.tar.bz2
-42e93279468975ed2bf3111b8721e5d9 MesaLib-6.4.1.zip
-e3b0d50807fd2bdcd1a95aaddd786f13 MesaDemos-6.4.1.tar.gz
-99df1fdcb98d391666b476ca6f1dda8a MesaDemos-6.4.1.tar.bz2
-b999d2c6d92fb4b7740a3dbd889348e3 MesaDemos-6.4.1.zip
-eadfe01fe5ddfb1eb8227dd567b31635 MesaGLUT-6.4.1.tar.gz
-bd003bb4f981a4f91dee4c38644d4f3f MesaGLUT-6.4.1.tar.bz2
-71c401c037088bf688a88afdaeb3420f MesaGLUT-6.4.1.zip
-</pre>
-
<h2>October 24, 2005</h2>
<p>
-Mesa 6.4 has been released. This is a stable, bug-fix release.
-</p>
-<a href="versions.html#6.4">Changes in version 6.4</a>
-<p>
-The MD5 checksums are:
+<a href="relnotes-6.4.html">Mesa 6.4</a> has been released.
+This is stable, bug-fix release.
</p>
-<pre>
-1cce0c1eb4fd15e9dfe837a1ce0c9812 MesaLib-6.4.tar.gz
-85a84e47a3f718f752f306b9e0954ef6 MesaLib-6.4.tar.bz2
-b976fea4f3ee06354c53f91b6e3f2ffc MesaLib-6.4.zip
-d8734f2c69bcf7ef9f5ae454a85743ba MesaDemos-6.4.tar.gz
-1a8c4d4fc699233f5fdb902b8753099e MesaDemos-6.4.tar.bz2
-607ab7c7a7de0cc5febbdde2bfa03098 MesaDemos-6.4.zip
-3260156f66174322a092be0767962d34 MesaGLUT-6.4.tar.gz
-0465d053f83775f44a12dec4050dfd78 MesaGLUT-6.4.tar.bz2
-02abfcdcdf72ba938ae00f6e3b70fbe0 MesaGLUT-6.4.zip
-</pre>
<h2>August 19, 2005</h2>
@@ -1133,6 +1070,6 @@ source code</a>.</p>
<hr>
-$Id: news.html,v 3.30 2006/09/16 04:13:20 brianp Exp $
+$Id: news.html,v 3.32 2006/09/21 22:51:16 brianp Exp $
</body>
</html>
diff --git a/docs/relnotes-6.4.1.html b/docs/relnotes-6.4.1.html
new file mode 100644
index 00000000000..3d6ff1c4fe4
--- /dev/null
+++ b/docs/relnotes-6.4.1.html
@@ -0,0 +1,68 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 6.4.1 / November 29, 2006</H1>
+
+<p>
+Mesa 6.4.1 is a stable, bug-fix release.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+698ceb574cf882b0226761f5913c0da9 MesaLib-6.4.1.tar.gz
+ea148c828ec6f645526451db1b8556f1 MesaLib-6.4.1.tar.bz2
+42e93279468975ed2bf3111b8721e5d9 MesaLib-6.4.1.zip
+e3b0d50807fd2bdcd1a95aaddd786f13 MesaDemos-6.4.1.tar.gz
+99df1fdcb98d391666b476ca6f1dda8a MesaDemos-6.4.1.tar.bz2
+b999d2c6d92fb4b7740a3dbd889348e3 MesaDemos-6.4.1.zip
+eadfe01fe5ddfb1eb8227dd567b31635 MesaGLUT-6.4.1.tar.gz
+bd003bb4f981a4f91dee4c38644d4f3f MesaGLUT-6.4.1.tar.bz2
+71c401c037088bf688a88afdaeb3420f MesaGLUT-6.4.1.zip
+</pre>
+
+
+<h2>Bug fixes</h2>
+<ul>
+<li>redefining a vertex program string didn't take effect in TNL module
+<li>fixed occasional segfault upon vertex/fragment parsing error
+<li>vertex program LIT instruction didn't handle 0^0=1 correctly
+<li>fragment program fog option didn't work with glDrawPixels, glBitmap
+<li>USE_MGL_NAMESPACE didn't work for x86-64
+<li>OSMesa demos were missing from previous release tarballs
+<li>fixed problem with float->ushort conversion in glClear (bug 4992)
+<li>popping of GL_EYE_PLANE texgen state was broken (bug 4996)
+<li>popping of GL_SPOT_DIRECTION light state was broken (bug 5005)
+<li>fixed occasional triangle color interpolation problem on VMS
+<li>work around invalid free() call (bug 5131)
+<li>fixed BSD X server compilation problem by including stdint.h
+</ul>
+
+
+<h2>Driver Status</h2>
+
+<pre>
+Driver Status
+---------------------- ----------------------
+DRI drivers varies with the driver
+XMesa (Xlib) implements OpenGL 1.5
+OSMesa (off-screen) implements OpenGL 1.5
+Windows/Win32 implements OpenGL 1.5
+Glide (3dfx Voodoo1/2) requires updates
+SVGA requires updates
+DJGPP requires updates
+GGI requires updates
+BeOS requires updates
+Allegro requires updates
+D3D requires updates
+</pre>
+
+</body>
+</html>
diff --git a/docs/relnotes-6.4.2.html b/docs/relnotes-6.4.2.html
new file mode 100644
index 00000000000..f5a658f99b5
--- /dev/null
+++ b/docs/relnotes-6.4.2.html
@@ -0,0 +1,75 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 6.4.2 / February 2, 2006</H1>
+
+<p>
+Mesa 6.4.2 is a stable, bug-fix release.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+cb0d745d520fa7c2bb9178058b763544 MesaLib-6.4.2.tar.gz
+7674d2c603b5834259e4e5a820cefd5b MesaLib-6.4.2.tar.bz2
+d224e1325b33ff71a0f3893fc6b4d594 MesaLib-6.4.2.zip
+d4b345d4588fc750cd3d34f3ac26673e MesaDemos-6.4.2.tar.gz
+9cae1ab874af533ce356bd7dfe2e0bb0 MesaDemos-6.4.2.tar.bz2
+2da6e1d1245e441d27813595c6ba50de MesaDemos-6.4.2.zip
+84427d18c3453f0ea52388eeba7169b5 MesaGLUT-6.4.2.tar.gz
+b157ba8ad1ea63260cf5339132e7aac6 MesaGLUT-6.4.2.tar.bz2
+fe1523744fc05edc3811dfc6a1bf4181 MesaGLUT-6.4.2.zip
+</pre>
+
+
+<h2>New features</h2>
+<ul>
+<li>added OSMesaColorClamp() function/feature
+<li>added wglGetExtensionStringARB() function
+</ul>
+
+<h2>Changes</h2>
+<ul>
+<li>GLUT tarball
+<br>
+Starting with 6.4, the GLUT library sources are distributed in a separate
+tarball. This was done at the request of Linux distro vendors who prefer
+to use freeglut.
+</ul>
+
+<h2>Bug fixes</h2>
+<ul>
+<li>fixed some problems when building on Windows
+<li>GLw header files weren't installed by installmesa script (bug 5396)
+<li>GL/glfbdev.h file was missing from tarballs
+<li>fixed TNL initialization bug which could lead to crash (bug 5791)
+</ul>
+
+
+<h2>Driver Status</h2>
+
+<pre>
+Driver Status
+---------------------- ----------------------
+DRI drivers varies with the driver
+XMesa (Xlib) implements OpenGL 1.5
+OSMesa (off-screen) implements OpenGL 1.5
+Windows/Win32 implements OpenGL 1.5
+Glide (3dfx Voodoo1/2) requires updates
+SVGA requires updates
+DJGPP requires updates
+GGI requires updates
+BeOS requires updates
+Allegro requires updates
+D3D requires updates
+</pre>
+
+</body>
+</html>
diff --git a/docs/relnotes-6.4.html b/docs/relnotes-6.4.html
new file mode 100644
index 00000000000..1fffa27f6f8
--- /dev/null
+++ b/docs/relnotes-6.4.html
@@ -0,0 +1,90 @@
+<HTML>
+
+<TITLE>Mesa Release Notes</TITLE>
+
+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<body bgcolor="#eeeeee">
+
+<H1>Mesa 6.4 / October 24, 2005</H1>
+
+<p>
+Mesa 6.4 is a stable, bug-fix release.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+1cce0c1eb4fd15e9dfe837a1ce0c9812 MesaLib-6.4.tar.gz
+85a84e47a3f718f752f306b9e0954ef6 MesaLib-6.4.tar.bz2
+b976fea4f3ee06354c53f91b6e3f2ffc MesaLib-6.4.zip
+d8734f2c69bcf7ef9f5ae454a85743ba MesaDemos-6.4.tar.gz
+1a8c4d4fc699233f5fdb902b8753099e MesaDemos-6.4.tar.bz2
+607ab7c7a7de0cc5febbdde2bfa03098 MesaDemos-6.4.zip
+3260156f66174322a092be0767962d34 MesaGLUT-6.4.tar.gz
+0465d053f83775f44a12dec4050dfd78 MesaGLUT-6.4.tar.bz2
+02abfcdcdf72ba938ae00f6e3b70fbe0 MesaGLUT-6.4.zip
+</pre>
+
+
+<h2>New</h2>
+<ul>
+<li>Added a fast XOR line drawing function in Xlib driver
+<li>Added support for GL_ARB_texture_mirrored_repeat to savage driver (supported only on Savage4 hardware).
+</ul>
+
+<h2>Changes</h2>
+<ul>
+<li>Mesa now packaged in three parts: Library, Demos and GLUT
+</ul>
+
+<h2>Bug fixes</h2>
+<ul>
+<li>GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
+<li>Some files were present multiple times in the 6.3.2 tarballs
+<li>r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
+<li>glxgears_fbconfig demo didn't work (bug 4237)
+<li>fixed bug when bilinear sampling 2d textures with borders
+<li>glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
+<li>fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
+<li>fixed a few problems with proxy color tables (bug 4270)
+<li>fixed precision problem in Z clearing (bug 4395)
+<li>glBitmap, glDraw/CopyPixels mistakenly generated selection hits
+<li>fixed potential segfault caused by reading pixels outside
+ of renderbuffer bounds
+<li>glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
+<li>fixed memory corruption bug involving software alpha buffers
+<li>glReadPixels clipped by window bounds was sometimes broken
+<li>glDraw/CopyPixels of stencil data ignored the stencil write mask
+<li>glReadPixels from a texture bound to a framebuffer object didn't work
+<li>glIsRender/FramebufferEXT weren't totally correct
+<li>fixed a number of point size attenuation/fade bugs
+<li>fixed glFogCoord bug 4729
+<li>GLX encoding for transpose matrix functions was broken
+<li>fixed broken fragment program KIL and SWZ instructions
+<li>fragment programs that wrote result.depth.z didn't work
+</ul>
+
+
+<h2>Driver Status</h2>
+
+<pre>
+Driver Status
+---------------------- ----------------------
+DRI drivers varies with the driver
+XMesa (Xlib) implements OpenGL 1.5
+OSMesa (off-screen) implements OpenGL 1.5
+Windows/Win32 implements OpenGL 1.5
+Glide (3dfx Voodoo1/2) requires updates
+SVGA requires updates
+DJGPP requires updates
+GGI requires updates
+BeOS requires updates
+Allegro requires updates
+D3D requires updates
+</pre>
+
+</body>
+</html>
diff --git a/docs/relnotes-6.5.1.html b/docs/relnotes-6.5.1.html
index 0640e992bba..b053203f72a 100644
--- a/docs/relnotes-6.5.1.html
+++ b/docs/relnotes-6.5.1.html
@@ -8,17 +8,7 @@
<body bgcolor="#eeeeee">
-<H1>Mesa 6.5.1 Release Notes</H1>
-
-
-
-<H2>Introduction</H2>
-
-<p>
-Mesa uses an even/odd version number scheme like the Linux kernel.
-Odd numbered versions (such as 6.5) designate new developmental releases.
-Even numbered versions (such as 6.4) designate stable releases.
-</p>
+<H1>Mesa 6.5.1 Release Notes / September 15, 2006</H1>
<p>
Mesa 6.5.1 is a 6.5 follow-on development release mostly consisting of
@@ -26,8 +16,21 @@ Mesa 6.5.1 is a 6.5 follow-on development release mostly consisting of
</p>
-<h2>New Features</h2>
+<h2>MD5 checksums</h2>
+<pre>
+d9a555297319bb932a3192952d53d073 MesaLib-6.5.1.tar.gz
+c46f2c6646a270911b791dd8e1c2d977 MesaLib-6.5.1.tar.bz2
+939eaaff33322bfeafac784402b45f4f MesaLib-6.5.1.zip
+9e4bbe83c007bfbaa67449a81cc3d36a MesaDemos-6.5.1.tar.gz
+0f2794baf7a9d98b22caea9f78c6942d MesaDemos-6.5.1.tar.bz2
+14c77eab9cc7a265c331abf239927c1c MesaDemos-6.5.1.zip
+c5f87c23aaf4eaf1bda0d007ea98366c MesaGLUT-6.5.1.tar.gz
+2525642fe7f454e3e1a1aad01359b406 MesaGLUT-6.5.1.tar.bz2
+e33b165c22551e23b58ede8767378543 MesaGLUT-6.5.1.zip
+</pre>
+
+<h2>New Features</h2>
<ul>
<li>Intel i965 "broadwater" DRI driver
@@ -38,6 +41,53 @@ Mesa 6.5.1 is a 6.5 follow-on development release mostly consisting of
<li>GL_EXT_gpu_program_parameters - addes a few new functions for setting
multiple vertex/fragment program parameters with one call.
+<li>"engine" demo
+<li>updated fbdev driver and GLUT for fbdev (Sean D'Epagnier)
+<li>many updates to the DRI drivers
+</ul>
+
+<h2>Changes</h2>
+<ul>
+<li>The glVertexAttribARB functions no longer alias the conventional
+ vertex attributes.
+<li>glxinfo program prints more info with -l option
+<li>GL_FRAGMENT_PROGRAM_NV and GL_FRAGMENT_PROGRAM_ARB are now
+ compatible, in terms of glBindProgramARB()
+<li>The GL_ARB_vertex_program attribute <code>vertex.weight</code> is now
+ accepted by the parser, even though the GL_ARB_vertex_blend and
+ GL_EXT_vertex_weighting extensions aren't supported.
+ Allows Warcraft to run.
+</ul>
+
+<h2>Bug fixes</h2>
+<ul>
+<li>fixed broken texture border handling for depth textures (bug 6498)
+<li>removed the test for duplicated framebuffer attachments, per
+ version 117 of the GL_EXT_framebuffer_object specification
+<li>fixed a few render-to-texture bugs, including render to depth texture
+<li>clipping of lines against user-defined clip planes was broken (6512)
+<li>assembly language dispatch for SPARC was broken (bug 6484)
+<li>assorted compilation fixes on various Unix platforms (Dan Schikore)
+<li>glPopAttrib could restore an invalid value for GL_DRAW_BUFFER
+<li>assorted minor fixes for 16 and 32 bit/channel modes
+<li>fixed assorted bugs in texture compression paths
+<li>fixed indirect rendering vertex array crashes (bug 6863)
+<li>glDrawPixels GL_INDEX_OFFSET didn't always work
+<li>fixed convolution memory leak (bug 7077)
+<li>rectangular depth textures didn't work
+<li>invalid mode to glBegin didn't generate an error (bug 7142)
+<li>'normalized' parameter to glVertexAttribPointerARB didn't work
+<li>disable bogus GLX_SGI_video_sync extension in xlib driver
+<li>fixed R128 driver locking bug (Martijn van Oosterhout)
+<li>using evaluators with vertex programs caused crashes (bug 7564)
+<li>fragment.position wasn't set correctly for point/line primitives
+<li>fixed parser bug for scalar sources for GL_NV_fragment_program
+<li>max fragment program length was incorrectly 128, now 1024
+<li>writes to result.depth in fragment programs weren't clamped to [0,1]
+<li>fixed potential dangling pointer bug in glBindProgram()
+<li>fixed some memory leaks (and potential crashes) in Xlib driver
+<li>fixed a number of build issues on HP-UX (Christopher Bell)
+<li>accum buffer didn't work with OSMesa interface
</ul>
diff --git a/docs/relnotes-6.5.2.html b/docs/relnotes-6.5.2.html
new file mode 100644
index 00000000000..1ba936413a8
--- /dev/null
+++ b/docs/relnotes-6.5.2.html
@@ -0,0 +1,111 @@
+<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.2 Release Notes / (in progress)</H1>
+
+<p>
+Mesa 6.5.2 is a 6.5 follow-on development release mostly consisting of
+<a href="versions.html#6.5.1">bug fixes</a>.
+</p>
+
+
+<h2>MD5 checksums</h2>
+<pre>
+TBD
+</pre>
+
+
+<h2>New features</h2>
+<ul>
+<li>New DRI memory manager system. Currently used by the i915tex driver.
+Other DRI drivers will be updated to use the new memory manager in coming
+months.
+<br>
+To use the new driver you'll need the most recent DRM library and drivers
+(version 2.2 or later) and a recent xf86-video-intel driver module from X.org.
+<br>
+New features resulting from this work include:
+<ul>
+<li>EXT_framebuffer_objects, render to texture
+<li>ARB_pixel_buffer_objects
+<li>Accelerated CopyTexSubimage, DrawPixels, ReadPixels, CopyPixels
+<li>Accelerated texture uploads from pixel buffer objects
+<li>Potentially texturing directly from the pixel buffer object (zero
+copy texturing).
+</ul>
+<li>New Intel i965 DRI driver
+<li>New <code>minstall</code> script to replace normal install program
+<li>Faster fragment program execution in software
+<li>Added (or fixed) support for <a href="http://www.opengl.org/registry/specs/SGI/make_current_read.txt">
+ GLX_SGI_make_current_read</a> to the following drivers:</li>
+ <ul>
+ <li>radeon</li>
+ <li>savage</li>
+ <li>mga</li>
+ </ul>
+</ul>
+
+<h2>Bug fixes</h2>
+<ul>
+<li>fixed invalid memory read while rendering textured points (bug 8320)
+<li>fixed problems with freebsd-dri configuration (bug 8344)
+<li>Mesa's fake glxGetCurrentContext() wasn't thread-aware
+<li>OPTION NV_position_invariant didn't work in NV vertex programs
+<li>glDrawPixels into a user-created framebuffer object could crash Xlib driver
+<li>Line clipping was broken in some circumstances
+<li>fragment.fogcoord register didn't always contain the correct value
+<li>RGBA logicops didn't work reliably in some DRI drivers
+<li>Fixed broken RGBA LogicOps in Intel DRI drivers
+<li>Fixed some fragment program bugs in Intel i915 DRI driver
+<li>Fixed glGetVertexAttribfvARB bug 8883
+<li>Implemented glGetUniform[fi]vARB() functions
+</ul>
+
+
+<h2>Internal code changes</h2>
+
+<ul>
+<li>The device driver functions ResizeBuffers and GetBufferSize have been
+decprecated.
+<li>OpenGL 2.0 and 2.1 support is nearly done. We need to do quite a bit
+more testing of the shading language functions.
+</ul>
+
+
+<h2>To Do (someday) items</h2>
+<ul>
+<li>Switch to freeglut
+<li>Increase MAX_DRAWBUFFERS
+<li>Fix linux-glide target/driver.
+<li>Improved lambda and derivative 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>
diff --git a/docs/relnotes-6.5.html b/docs/relnotes-6.5.html
new file mode 100644
index 00000000000..9d1d6691e9d
--- /dev/null
+++ b/docs/relnotes-6.5.html
@@ -0,0 +1,131 @@
+<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>
diff --git a/docs/relnotes.html b/docs/relnotes.html
index 7383f02098f..9165c9f1492 100644
--- a/docs/relnotes.html
+++ b/docs/relnotes.html
@@ -9,15 +9,31 @@
<H1>Release Notes</H1>
<p>
+Mesa uses an even/odd version number scheme like the Linux kernel.
+Odd numbered versions (such as 6.5) designate new developmental releases.
+Even numbered versions (such as 6.4) designate stable releases.
+</p>
+
+
+<p>
The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
+<LI><A HREF="relnotes-6.5.2.html">6.5.2 release notes</A>
<LI><A HREF="relnotes-6.5.1.html">6.5.1 release notes</A>
-<LI><A HREF="RELNOTES-6.5">RELNOTES-6.5</A>
-<LI><A HREF="RELNOTES-6.4.2">RELNOTES-6.4.2</A>
-<LI><A HREF="RELNOTES-6.4.1">RELNOTES-6.4.1</A>
-<LI><A HREF="RELNOTES-6.4">RELNOTES-6.4</A>
+<LI><A HREF="relnotes-6.5.html">6.5 release notes</A>
+<LI><A HREF="relnotes-6.4.2.html">6.4.2 release notes</A>
+<LI><A HREF="relnotes-6.4.1.html">6.4.1 release notes</A>
+<LI><A HREF="relnotes-6.4.html">6.4 release notes</A>
+</UL
+
+<p>
+Versions of Mesa prior to 6.4 are summarized in the
+<a href="versions.html">versions file</a> and the following release notes.
+</p>
+
+<UL>
<LI><A HREF="RELNOTES-6.3.2">RELNOTES-6.3.2</A>
<LI><A HREF="RELNOTES-6.3">RELNOTES-6.3</A>
<LI><A HREF="RELNOTES-6.2.1">RELNOTES-6.2.1</A>
diff --git a/docs/sourcedocs.html b/docs/sourcedocs.html
index a5248d988d7..90538af5cf0 100644
--- a/docs/sourcedocs.html
+++ b/docs/sourcedocs.html
@@ -11,11 +11,22 @@
<p>
<A HREF="http://www.doxygen.org" target="_parent">Doxygen</A>
is used to automatically
-produce cross-referenced documentation from the Mesa sources.
-This is not included in the normal Mesa distribution.
-Download Mesa from CVS if interested.
+produce cross-referenced documentation from the Mesa source code.
+</p>
+
+<p>
+The Doxygen configuration files and generated files are not included
+in the normal Mesa distribution (they're very large).
+To generate Doxygen documentation, download Mesa from CVS, change to
+the <code>doxygen</code> directory and run <code>make</code>.
</P>
+<p>
+For an example of Doxygen usage in Mesa, see a recent source file
+such as <a href="http://webcvs.freedesktop.org/mesa/Mesa/src/mesa/main/bufferobj.c?view=markup" target="_parent">bufferobj.c</a>.
+</p>
+
+
<P>
If you're reading this page from your local copy of Mesa, and have
run the doxygen scripts, you can read the documentation
diff --git a/docs/versions.html b/docs/versions.html
index ad31a548dd3..84b40fd2158 100644
--- a/docs/versions.html
+++ b/docs/versions.html
@@ -8,6 +8,11 @@
<body bgcolor="#eeeeee">
+<B>
+NOTE: Changes for Mesa 6.4 and later are documented in the corresponding
+<a href="relnotes.html">release notes</a> file.
+</B>
+
<H1>Mesa Version History</H1>
@@ -1641,172 +1646,10 @@ Bug fixes:
</ul>
-<h2><a name="6.4">6.4 October 24, 2005</h2>
-New:
-<ul>
-<li>Added a fast XOR line drawing function in Xlib driver
-<li>Added support for GL_ARB_texture_mirrored_repeat to savage driver (supported only on Savage4 hardware).
-</ul>
-Changes:
-<ul>
-<li>Mesa now packaged in three parts: Library, Demos and GLUT
-</ul>
-Bug fixes:
-<ul>
-<li>GLX_X_RENDERABLE token wasn't accepted by glXChooseFBConfig
-<li>Some files were present multiple times in the 6.3.2 tarballs
-<li>r200_vtxtmp_x86.S file was missing from 6.3.2 tarball (bug 4207)
-<li>glxgears_fbconfig demo didn't work (bug 4237)
-<li>fixed bug when bilinear sampling 2d textures with borders
-<li>glXCreatePbuffer() could segfault instead of returning 0 (bug 4235)
-<li>fixed undefined frexp and rand in X.org libGLcore.a (bug 4242)
-<li>fixed a few problems with proxy color tables (bug 4270)
-<li>fixed precision problem in Z clearing (bug 4395)
-<li>glBitmap, glDraw/CopyPixels mistakenly generated selection hits
-<li>fixed potential segfault caused by reading pixels outside
- of renderbuffer bounds
-<li>glGetTexLevelParameter didn't accept GL_TEXTURE_DEPTH_SIZE_ARB
-<li>fixed memory corruption bug involving software alpha buffers
-<li>glReadPixels clipped by window bounds was sometimes broken
-<li>glDraw/CopyPixels of stencil data ignored the stencil write mask
-<li>glReadPixels from a texture bound to a framebuffer object didn't work
-<li>glIsRender/FramebufferEXT weren't totally correct
-<li>fixed a number of point size attenuation/fade bugs
-<li>fixed glFogCoord bug 4729
-<li>GLX encoding for transpose matrix functions was broken
-<li>fixed broken fragment program KIL and SWZ instructions
-<li>fragment programs that wrote result.depth.z didn't work
-</ul>
-
-
-<h2><a name="6.4.1">6.4.1 November 30, 2005</h2>
-Bug fixes:
-<ul>
-<li>redefining a vertex program string didn't take effect in TNL module
-<li>fixed occasional segfault upon vertex/fragment parsing error
-<li>vertex program LIT instruction didn't handle 0^0=1 correctly
-<li>fragment program fog option didn't work with glDrawPixels, glBitmap
-<li>USE_MGL_NAMESPACE didn't work for x86-64
-<li>OSMesa demos were missing from previous release tarballs
-<li>fixed problem with float->ushort conversion in glClear (bug 4992)
-<li>popping of GL_EYE_PLANE texgen state was broken (bug 4996)
-<li>popping of GL_SPOT_DIRECTION light state was broken (bug 5005)
-<li>fixed occasional triangle color interpolation problem on VMS
-<li>work around invalid free() call (bug 5131)
-<li>fixed BSD X server compilation problem by including stdint.h
-</ul>
-
-
-<h2><a name="6.4.2">6.4.2 February 2, 2006</h2>
-New:
-<ul>
-<li>added OSMesaColorClamp() function/feature
-<li>added wglGetExtensionStringARB() function
-</ul>
-Bug fixes:
-<ul>
-<li>fixed some problems when building on Windows
-<li>GLw header files weren't installed by installmesa script (bug 5396)
-<li>GL/glfbdev.h file was missing from tarballs
-<li>fixed TNL initialization bug which could lead to crash (bug 5791)
-</ul>
-
-
-<h2><a name="6.5">6.5 March 31, 2006</h2>
-New:
-<ul>
-<li>OpenGL Shading Language support through GL_ARB_shader_objects,
- GL_ARB_shading_language_100, GL_ARB_vertex_shader and
- GL_ARB_fragment_shader (done by Michal Krol)
-<li>GL_EXT_packed_depth_stencil extension
-<li>GL_EXT_timer_query extension
-<li>GL_EXT_framebuffer_blit extension
-<li>GL_ARB_half_float_pixel
-<li>reflect demo improved to support multiple windows
-<li>singlebuffer demo (shows no/little-flicker single-buffered rendering)
-<li>r200: enable GL_ARB_texture_env_crossbar, separate the texture
- sampling unit bits from the texture env combine enable bits
-<li>r200: add support for GL_ATI_fragment_shader
-<li>added fast XOR-mode line drawing optimization
-<li>radeon: add support for all 3 tmus, GL_ARB_texture_cube_map
- and GL_EXT_fog_coord
-<li>MESA_GLX_ALPHA_BITS env var for xlib driver
-<li>many DRI driver updates (including screen rotation support
- for the Intel DRI driver)
-</ul>
-Changes:
-<ul>
-<li>removed GL_HP_occlusion_test (use GL_ARB_occlusion_query instead)
-<li>removed GL_SGIX/SGIS_pixel_texture extensions
-</ul>
-Bug fixes:
-<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><a name="6.5.1">6.5.1 September 15, 2006</h2>
-New:
-<ul>
-<li>Intel i965 DRI driver
-<li>GL_APPLE_vertex_array_object extension (Ian Romanick)
-<li>GL_EXT_texture_sRGB extension
-<li>GL_EXT_gpu_program_parameters (Ian Romanick)
-<li>"engine" demo
-<li>updated fbdev driver and GLUT for fbdev (Sean D'Epagnier)
-<li>many updates to the DRI drivers
-</ul>
-Changes:
-<ul>
-<li>The glVertexAttribARB functions no longer alias the conventional
- vertex attributes.
-<li>glxinfo program prints more info with -l option
-<li>GL_FRAGMENT_PROGRAM_NV and GL_FRAGMENT_PROGRAM_ARB are now
- compatible, in terms of glBindProgramARB()
-<li>The GL_ARB_vertex_program attribute <code>vertex.weight</code> is now
- accepted by the parser, even though the GL_ARB_vertex_blend and
- GL_EXT_vertex_weighting extensions aren't supported.
- Allows Warcraft to run.
-</ul>
-Bug fixes:
-<ul>
-<li>fixed broken texture border handling for depth textures (bug 6498)
-<li>removed the test for duplicated framebuffer attachments, per
- version 117 of the GL_EXT_framebuffer_object specification
-<li>fixed a few render-to-texture bugs, including render to depth texture
-<li>clipping of lines against user-defined clip planes was broken (6512)
-<li>assembly language dispatch for SPARC was broken (bug 6484)
-<li>assorted compilation fixes on various Unix platforms (Dan Schikore)
-<li>glPopAttrib could restore an invalid value for GL_DRAW_BUFFER
-<li>assorted minor fixes for 16 and 32 bit/channel modes
-<li>fixed assorted bugs in texture compression paths
-<li>fixed indirect rendering vertex array crashes (bug 6863)
-<li>glDrawPixels GL_INDEX_OFFSET didn't always work
-<li>fixed convolution memory leak (bug 7077)
-<li>rectangular depth textures didn't work
-<li>invalid mode to glBegin didn't generate an error (bug 7142)
-<li>'normalized' parameter to glVertexAttribPointerARB didn't work
-<li>disable bogus GLX_SGI_video_sync extension in xlib driver
-<li>fixed R128 driver locking bug (Martijn van Oosterhout)
-<li>using evaluators with vertex programs caused crashes (bug 7564)
-<li>fragment.position wasn't set correctly for point/line primitives
-<li>fixed parser bug for scalar sources for GL_NV_fragment_program
-<li>max fragment program length was incorrectly 128, now 1024
-<li>writes to result.depth in fragment programs weren't clamped to [0,1]
-<li>fixed potential dangling pointer bug in glBindProgram()
-<li>fixed some memory leaks (and potential crashes) in Xlib driver
-</ul>
+<B>
+NOTE: Changes for Mesa 6.4 and later are documented in the corresponding
+<a href="relnotes.html">release notes</a> file.
+</B>
</body>