aboutsummaryrefslogtreecommitdiff
path: root/mesalib/docs
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib/docs')
-rw-r--r--mesalib/docs/GL3.txt2
-rw-r--r--mesalib/docs/README.BEOS136
-rw-r--r--mesalib/docs/autoconf.html7
-rw-r--r--mesalib/docs/contents.html211
-rw-r--r--mesalib/docs/devinfo.html33
-rw-r--r--mesalib/docs/dispatch.html4
-rw-r--r--mesalib/docs/download.html1
-rw-r--r--mesalib/docs/faq.html7
-rw-r--r--mesalib/docs/fbdev-dri.html343
-rw-r--r--mesalib/docs/glfbdev-driver.html111
-rw-r--r--mesalib/docs/install.html18
-rw-r--r--mesalib/docs/libGL.txt394
-rw-r--r--mesalib/docs/postprocess.html56
-rw-r--r--mesalib/docs/sourcetree.html2
-rw-r--r--mesalib/docs/subset.html2
-rw-r--r--mesalib/docs/systems.html8
16 files changed, 403 insertions, 932 deletions
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index c3a2472cf..965f385f5 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -123,7 +123,7 @@ GL_ARB_texture_storage not started
GL_ARB_transform_feedback_instanced not started
GL_ARB_base_instance not started
GL_ARB_shader_image_load_store not started
-GL_ARB_conservative_depth not started (may be close to AMD_conservative_depth though)
+GL_ARB_conservative_depth DONE (compiler)
GL_ARB_shading_language_420pack not started
GL_ARB_internalformat_query not started
GL_ARB_map_buffer_alignment not started
diff --git a/mesalib/docs/README.BEOS b/mesalib/docs/README.BEOS
deleted file mode 100644
index efd84e888..000000000
--- a/mesalib/docs/README.BEOS
+++ /dev/null
@@ -1,136 +0,0 @@
-
- Mesa / BeOS Information
-
-
-
-* Introduction
-
-Brian Paul added in Mesa 3.1 a driver for BeOS R4.5 operating system.
-This driver implements a clone of the BGLView class. This class,
-derived from BView, allows OpenGL rendering into any BeOS window. His
-driver was updated in Mesa 4.1 and again in version 6.1 by Philippe
-Houdoin, who's maintaining this driver since.
-
-Any application which uses the BGLView should be able to use Mesa
-instead of Be's OpenGL without changing any code.
-
-Since Be's OpenGL implementation (as of R5) is basically just the
-SGI sample implementation, it's pretty slow. You'll see that Mesa
-is considerably faster.
-
-
-* Source Code
-
-The source code for the driver is in src/mesa/drivers/beos/ directory.
-It's not 100% finished at this time but many GLUT-based demos are
-working. No optimizations have been made at this time.
-
-
-* Compiling
-
-Since Mesa 6.x, it can be build under BeOS with both the R5 builtin gcc version
-or more recent gcc versions available for BeOS, like this gcc version 2.95.3 for BeOS
-you can find at http://www.bebits.com/app/2157.
-Anyway, keep in mind that to take full advantage of Mesa x86 optimizations, you better
-want to use gcc 2.95.3 or sooner versions...
-
-To build Mesa-powered BeOS libGL.so version, open an Terminal window,
-move to Mesa root folder and type this command:
-
-$ make beos
-
-Note that the "beos" argument is only needed the first time to setup build config.
-Next times, typing "make" will be enough.
-
-When it finishes the Mesa based libGL.so library for
-BeOS will be in the lib/ directory, along libglut.so library.
-Several demo/test programs should have been build too under progs/* folders.
-If it stop when building one of the progs/* programs, you may want to ignore it
-and force make to move on next target by adding the -k make option:
-
-$ cd progs
-$ make -k
-
-To install it as Be's default libGL.so replacement, put it in your
-/boot/home/config/lib/ directory. All your GL/GLUT apps will use
-the Mesa based then.
-
-By default, it build a non-debug version library.
-The x86 (MMX, SSE and 3DNOW) optimizations are also supported for x86 target.
-For PowerPC BeOS flavor, sorry, Mesa don't have ppc (Altivec) optimizations
-yet.
-
-To build a DEBUG version, type instead this :
-
-$ DEBUG=1 make
-
-
-* Example Programs
-
-Look under progs/beos/ for some BGLView-based programs.
-You should find under progs/samples and progs/redbook directories GLUT-based programs too.
-They all should have been compiled along with the Mesa library.
-
-
-* GLUT
-
-A beta version of GLUT 3.7 port for BeOS, made by Jake Hamby, can be found at
-http://anobject.com/jehamby/Code/Glut-3.7-x86.zip.
-This is the version currently included in Mesa source code, and
-build in lib/libglut.so.
-
-A previous 3.5 version of this GLUT BeOS port used to be available at
-http://home.beoscentral.com/jehamby/Glut-3.5-x86.zip.
-
-They're special versions of GLUT for the BeOS platform. I don't
-believe Mark Kilgard's normal GLUT distribution includes BeOS
-support.
-
-
-* Special Features
-
-Mesa's implementation of the BGLView class has an extra member
-function: CopySubBufferMESA(). It basically works like SwapBuffers()
-but it only copies a sub region from the back buffer to the front
-buffer. This is a useful optimization for some applications.
-If you use this method in your code be sure that you check at runtime
-that you're actually using Mesa (with glGetString) so you don't
-cause a fatal error when running with Be's OpenGL.
-
-
-* Work Left To Do
-
-- BDirectWindow single buffering support is not implemented yet.
-- Color index mode is not implemented yet.
-- Reading pixels from the front buffer not implemented yet.
-- There is also a BGLScreen class in BeOS for full-screen OpenGL rendering.
- This should also be implemented for Mesa.
-- Multiple renderers add-ons support, first step toward hardware acceleration
- support.
-
-* Other contributors to this BeOS port
-
-Jake Hamby jhamby <at> anobject <dot> com
-Marcin Konicki ahwayakchih <at> neoni <dot> net
-Francois Revol revol <at> free <dot> fr
-Nathan Whitehorn nathanw <at> uchicago <dot> edu
-
-
-* Older BeOS Driver
-
-Mesa 2.6 had an earlier BeOS driver. It was based on Mesa's Off-screen
-rendering interface, not BGLView. If you're interested in the older
-driver you should get Mesa 2.6.
-
-
-* BeOS and Glide
-
-Mesa 3.0 supported the 3Dfx/Glide library on Beos. Download Mesa 3.0
-if interested. Ideally, the 3Dfx/Glide support should be updated to
-work with the new Mesa 3.1 BGLView implementation.
-
-The Glide library hasn't been updated for BeOS R4 and newer, to my knowledge,
-as of February, 1999.
-
-
-----------------------------------------------------------------------
diff --git a/mesalib/docs/autoconf.html b/mesalib/docs/autoconf.html
index 64bcbd48a..895cf665c 100644
--- a/mesalib/docs/autoconf.html
+++ b/mesalib/docs/autoconf.html
@@ -20,7 +20,6 @@
<li><a href="#library">Library Options</a></li>
<ul>
<li><a href="#glu">GLU</a></li>
- <li><a href="#glw">GLw</a></li>
</ul>
<li><a href="#demos">Demo Program Options</a></li>
</ol>
@@ -245,12 +244,6 @@ instructions</a>.
on all drivers. This can be disable with the option
<code>--disable-glu</code>.
</li>
-
-<a name="glw">
-<li><b><em>GLw</em></b> - The libGLw library will be built by default
-if libGLU has been enabled. This can be disable with the option
-<code>--disable-glw</code>.
-</li>
</ul>
</p>
diff --git a/mesalib/docs/contents.html b/mesalib/docs/contents.html
index bf5e9aa09..df0fb6474 100644
--- a/mesalib/docs/contents.html
+++ b/mesalib/docs/contents.html
@@ -1,106 +1,105 @@
-<html>
-
-<title>Contents</title>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<!--Override a few values from the style sheet: -->
-<style>
-<!--
-body {
- background-color: #cccccc;
- color: black;
-}
-a:link {
- color: #000;
-}
-a:visited {
- color: #000;
-}
--->
-</style>
-
-
-<b>Documentation</b>
-<ul>
-<li><a href="intro.html" target="MainFrame">Introduction</a>
-<li><a href="news.html" target="MainFrame">News</a>
-<LI><A HREF="developers.html" target="MainFrame">Developers</A>
-<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="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>
-<li>more docs below...
-</ul>
-
-<b>Download / Install</b>
-<ul>
-<li><a href="download.html" target="MainFrame">Downloading / Unpacking</a>
-<li><a href="install.html" target="MainFrame">Compiling / Installing</a>
-<li><a href="precompiled.html" target="MainFrame">Precompiled Libraries</a>
-</ul>
-
-<b>Resources</b>
-<ul>
-<li><a href="lists.html" target="MainFrame">Mailing Lists</a>
-<li><a href="bugs.html" target="MainFrame">Bug Database</a>
-<li><a href="webmaster.html" target="MainFrame">Webmaster</a>
-<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
-</ul>
-
-<b>User Topics</b>
-<ul>
-<li><a href="shading.html" target="MainFrame">Shading Language</a>
-<li><a href="egl.html" target="MainFrame">EGL</a>
-<li><a href="opengles.html" target="MainFrame">OpenGL ES</a>
-<li><a href="openvg.html" target="MainFrame">OpenVG / Vega</a>
-<LI><A HREF="envvars.html" target="MainFrame">Environment Variables</A>
-<LI><A HREF="osmesa.html" target="MainFrame">Off-Screen Rendering</A>
-<LI><A HREF="debugging.html" target="MainFrame">Debugging Tips</A>
-<LI><A HREF="perf.html" target="MainFrame">Performance Tips</A>
-<LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A>
-<LI><A HREF="mangling.html" target="MainFrame">Function Name Mangling</A>
-<LI><A href="llvmpipe.html" target="MainFrame">Gallium llvmpipe driver</A>
-</ul>
-
-<b>Developer Topics</b>
-<ul>
-<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
-<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
-<li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a>
-<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
-<li><a href="utilities.html" target="MainFrame">Utilities</a>
-<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
-<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
-<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
-<li><a href="fbdev-dri.html" target="MainFrame">fbdev/DRI Environment</a>
-<li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a>
-<li><a href="glfbdev-driver.html" target="MainFrame">glFBDev Driver</a>
-<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
-<li><a href="cell.html" target="MainFrame">Cell Driver</A>
-</ul>
-
-<b>Links</b>
-<ul>
-<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
-<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
-<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
-<li><a href="games.html" target="MainFrame">Games and Entertainment</a>
-<li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a>
-<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
-<li><a href="science.html" target="MainFrame">Science and Technical</a>
-<li><a href="utility.html" target="MainFrame">Utilities</a>
-</ul>
-
-<b>Hosted by:</b>
-<br>
-<blockquote>
-<A HREF="http://sourceforge.net"
-target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
-WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
-</blockquote>
-
-</body>
-</html>
+<html>
+
+<title>Contents</title>
+
+<link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<!--Override a few values from the style sheet: -->
+<style>
+<!--
+body {
+ background-color: #cccccc;
+ color: black;
+}
+a:link {
+ color: #000;
+}
+a:visited {
+ color: #000;
+}
+-->
+</style>
+
+
+<b>Documentation</b>
+<ul>
+<li><a href="intro.html" target="MainFrame">Introduction</a>
+<li><a href="news.html" target="MainFrame">News</a>
+<LI><A HREF="developers.html" target="MainFrame">Developers</A>
+<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="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>
+<li>more docs below...
+</ul>
+
+<b>Download / Install</b>
+<ul>
+<li><a href="download.html" target="MainFrame">Downloading / Unpacking</a>
+<li><a href="install.html" target="MainFrame">Compiling / Installing</a>
+<li><a href="precompiled.html" target="MainFrame">Precompiled Libraries</a>
+</ul>
+
+<b>Resources</b>
+<ul>
+<li><a href="lists.html" target="MainFrame">Mailing Lists</a>
+<li><a href="bugs.html" target="MainFrame">Bug Database</a>
+<li><a href="webmaster.html" target="MainFrame">Webmaster</a>
+<li><a href="http://dri.freedesktop.org/" target="_parent">Mesa/DRI Wiki</a>
+</ul>
+
+<b>User Topics</b>
+<ul>
+<li><a href="shading.html" target="MainFrame">Shading Language</a>
+<li><a href="egl.html" target="MainFrame">EGL</a>
+<li><a href="opengles.html" target="MainFrame">OpenGL ES</a>
+<li><a href="openvg.html" target="MainFrame">OpenVG / Vega</a>
+<LI><A HREF="envvars.html" target="MainFrame">Environment Variables</A>
+<LI><A HREF="osmesa.html" target="MainFrame">Off-Screen Rendering</A>
+<LI><A HREF="debugging.html" target="MainFrame">Debugging Tips</A>
+<LI><A HREF="perf.html" target="MainFrame">Performance Tips</A>
+<LI><A HREF="extensions.html" target="MainFrame">Mesa Extensions</A>
+<LI><A HREF="mangling.html" target="MainFrame">Function Name Mangling</A>
+<LI><A href="llvmpipe.html" target="MainFrame">Gallium llvmpipe driver</A>
+<LI><A href="postprocess.html" target="MainFrame">Gallium post-processing</A>
+</ul>
+
+<b>Developer Topics</b>
+<ul>
+<li><a href="http://sourceforge.net/projects/mesa3d" target="_parent">SourceForge homepage</a>
+<li><a href="repository.html" target="MainFrame">Source Code Repository</a>
+<li><a href="sourcetree.html" target="MainFrame">Source Code Tree</a>
+<li><a href="glu.html" target="MainFrame">SGI's GLU</a>
+<li><a href="utilities.html" target="MainFrame">Utilities</a>
+<li><a href="helpwanted.html" target="MainFrame">Help Wanted</a>
+<li><a href="devinfo.html" target="MainFrame">Development Notes</a>
+<li><a href="sourcedocs.html" target="MainFrame">Source Documentation</a>
+<li><a href="subset.html" target="MainFrame">Mesa Subset Driver</a>
+<LI><A HREF="dispatch.html" target="MainFrame">GL Dispatch</A>
+<li><a href="cell.html" target="MainFrame">Cell Driver</A>
+</ul>
+
+<b>Links</b>
+<ul>
+<li><a href="http://www.opengl.org" target="_parent">OpenGL website</a>
+<li><a href="http://dri.freedesktop.org" target="_parent">DRI website</a>
+<li><a href="http://www.freedesktop.org" target="_parent">freedesktop.org</a>
+<li><a href="games.html" target="MainFrame">Games and Entertainment</a>
+<li><a href="libraries.html" target="MainFrame">Libraries and Toolkits</a>
+<li><a href="modelers.html" target="MainFrame">Modeling and Rendering</a>
+<li><a href="science.html" target="MainFrame">Science and Technical</a>
+<li><a href="utility.html" target="MainFrame">Utilities</a>
+</ul>
+
+<b>Hosted by:</b>
+<br>
+<blockquote>
+<A HREF="http://sourceforge.net"
+target="_parent"><IMG SRC="http://sourceforge.net/sflogo.php?group_id=3&type=1"
+WIDTH="88" HEIGHT="31" ALIGN="BOTTOM" ALT="Sourceforge.net" BORDER="0"></A>
+</blockquote>
+
+</body>
+</html>
diff --git a/mesalib/docs/devinfo.html b/mesalib/docs/devinfo.html
index 8887dd026..d9e82e29d 100644
--- a/mesalib/docs/devinfo.html
+++ b/mesalib/docs/devinfo.html
@@ -72,6 +72,13 @@ If you use tabs, set them to 8 columns
</p>
<p>
+Line width: the preferred width to fill comments and code in Mesa is 78
+columns. Exceptions are sometimes made for clarity (e.g. tabular data is
+sometimes filled to a much larger width so that extraneous carriage returns
+don't obscure the table).
+</p>
+
+<p>
Brace example:
</p>
<pre>
@@ -81,10 +88,26 @@ Brace example:
else {
bar;
}
+
+ switch (condition) {
+ case 0:
+ foo();
+ break;
+
+ case 1: {
+ ...
+ break;
+ }
+
+ default:
+ ...
+ break;
+ }
</pre>
<p>
Here's the GNU indent command which will best approximate my preferred style:
+(Note that it won't format switch statements in the preferred way)
</p>
<pre>
indent -br -i3 -npcs --no-tabs infile.c -o outfile.c
@@ -114,6 +137,16 @@ Function name examples:
_mesa_foo_bar() - an internal non-static Mesa function
</pre>
+<p>
+Places that are not directly visible to the GL API should prefer the use
+of <tt>bool</tt>, <tt>true</tt>, and
+<tt>false</tt> over <tt>GLboolean</tt>, <tt>GL_TRUE</tt>, and
+<tt>GL_FALSE</tt>. In C code, this may mean that
+<tt>#include &lt;stdbool.h&gt;</tt> need to be added. The
+<tt>try_emit_</tt>* methods in src/mesa/program/ir_to_mesa.cpp and
+src/mesa/state_tracker/st_glsl_to_tgsi.cpp can serve as an example.
+</p>
+
<H2>Making a New Mesa Release</H2>
diff --git a/mesalib/docs/dispatch.html b/mesalib/docs/dispatch.html
index e5587c1a2..c3a33b90b 100644
--- a/mesalib/docs/dispatch.html
+++ b/mesalib/docs/dispatch.html
@@ -198,9 +198,7 @@ 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>WIN32_THREADS</tt>, or <tt>BEOS_THREADS</tt>
-is defined, method #2 is used.</li>
+<li>If <tt>WIN32_THREADS</tt> is defined, method #2 is used.</li>
<li>If none of the preceeding are defined, method #1 is used.</li>
</ul>
diff --git a/mesalib/docs/download.html b/mesalib/docs/download.html
index df4f7a728..08641f8ac 100644
--- a/mesalib/docs/download.html
+++ b/mesalib/docs/download.html
@@ -84,7 +84,6 @@ src/mesa - sources for the main Mesa library and device drivers
src/gallium - sources for Gallium and Gallium drivers
src/glu - libGLU source code
src/glx - sources for building libGL with full GLX and DRI support
-src/glw - Xt/Motif/OpenGL widget code
</pre>
If you downloaded and unpacked the MesaGLUT.x.y.z package:
diff --git a/mesalib/docs/faq.html b/mesalib/docs/faq.html
index 071381c5a..bf6545fd5 100644
--- a/mesalib/docs/faq.html
+++ b/mesalib/docs/faq.html
@@ -204,8 +204,13 @@ If you don't already have GLUT installed, you should grab
</a></p>
+<h2><a name="part2">2.4 Where is the GLw library?</a></h2>
+<p>
+<a name="part2">GLw (OpenGL widget library) is now available from a separate <a href="http://cgit.freedesktop.org/mesa/glw/">git repository</a>. Unless you're using very old Xt/Motif applications with OpenGL, you shouldn't need it.
+</a></p>
+
-<h2><a name="part2">2.4 What's the proper place for the libraries and headers?</a></h2>
+<h2><a name="part2">2.5 What's the proper place for the libraries and headers?</a></h2>
<p>
<a name="part2">On Linux-based systems you'll want to follow the
</a><a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html"
diff --git a/mesalib/docs/fbdev-dri.html b/mesalib/docs/fbdev-dri.html
deleted file mode 100644
index 0eea5e8e3..000000000
--- a/mesalib/docs/fbdev-dri.html
+++ /dev/null
@@ -1,343 +0,0 @@
-<html><head><title>Mesa fbdev/DRI Environment</title>
-
-
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<body>
-
-<center><h1>Mesa fbdev/DRI Drivers</h1></center>
-<br>
-
-<h1><center>NOTE: this information is obsolete and will be removed at
-a future date</center></h1>
-
-<h1>1. Introduction</h1>
-
-<p>
-The fbdev/DRI environment supports hardware-accelerated 3D rendering without
-the X window system. This is typically used for embedded applications.
-</p>
-
-<p>
-Contributors to this project include Jon Smirl, Keith Whitwell and Dave Airlie.
-</p>
-
-<p>
-Applications in the fbdev/DRI environment use
-the MiniGLX interface to choose pixel
-formats, create rendering contexts, etc. It's a subset of the GLX and
-Xlib interfaces allowing some degree of application portability between
-the X and X-less environments.
-</p>
-
-<p>
-Note that this environment is not well-supported and these instructions
-may not be completely up to date.
-</p>
-<br>
-
-
-
-<h1>2. Compilation</h1>
-<p>
-
-<h2>2.1 glxproto</h2>
-
-Get <a href="http://cvsweb.xfree86.org/cvsweb/*checkout*/xc/include/GL/glxproto.h?rev=1.9">glxproto.h</a>. Copy it to the /mesa/include/GL/ directory.
-</p>
-
-<h2>2.2 libpciaccess</h2>
-<p>
-Check if you have libpciaccess installed:
-</p>
-
-<pre>pkg-config --modversion pciaccess
-</pre>
-<p>
-If not you can download the latest code from:
-</p>
-<pre> git clone git://anongit.freedesktop.org/git/xorg/lib/libpciaccess
-</pre>
-<p>
-Run autogen.sh to generate a configure file. autogen.sh uses autoconf
-utility. This utility may not be installed with your linux distro,
-check if it is available. if not you can use your package manager or
-type:
-</p>
-<pre>sudo apt-get install autoconf
-</pre>
-The next step is to install the libpciaccess library.
-<pre>make
-make install
-</pre>
-<p> Now your libpciaccess.a file is saved into /usr/local/lib
-directory. If you have a libpciaccess.a in /usr/lib you may simply copy
-and overwrite these files. Don't forget to copy libpciaccess.pc file to
-/usr/lib/pkgconfig, which is also located in /usr/local/lib/pkgconfig/.
-Or you may use the following system variables:
-</p>
-<pre>export LD_LIBRARY_PATH=/usr/local/lib
-export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-</pre>
-
-<h2>2.3 drm</h2>
-
-<p>The next step is to compile the drm. DRM consists of two seperate parts,
-the DRM client library(lindrm.so) and kernel device module(such as
-radeon.ko). We need to make a small change in kernel device module. So
-you need to download the kernel source. You may choose the nearest
-mirror from www.kernel.org, or you are using Fedora Core 5, for
-example, you may need to install RPMs such as:
-kernel-smp-devel-2.16.15-1.2054_FC5.i686.rpm
-kernel-devel-2.6.15-1.2054_FC5.i686.rpm
-etc. You can find a detailed information <a href="http://www.howtoforge.com/kernel_compilation_fedora">here.</a>
-</p>
-
-<p>You will find drm_drv.c at /usr/src/LINUX-VERSION/drivers/char/drm/. Edit this code and comment out the following part:
-</p>
-
-<pre>
- /* ||
- ((ioctl-&gt;flags &amp; DRM_MASTER) &amp;&amp; !priv-&gt;master)*/
-</pre>
-Now you are ready to compile your kernel. If your kernel version is
-identical to the version you have compiled, you can simply over write
-your new "ko" files over older ones. If you have compiled a different
-kernel, you must configure your grub or lilo to be able to boot your
-new kernel. <p>
-You'll need fbdev header files. Check with:
-</p>
-<pre>
- ls -l /usr/include/linux/fb.
-</pre>
-<p>This file may be missing if you have not installed linux header files.
-
-
-<h2>2.4 Mesa</h2>
-
-</p><p>Get latest development Mesa sources from git repository
-(currently 7.1-prerelease)
-</p>
-<pre>
- git clone git://anongit.freedesktop.org/git/mesa/mesa
-</pre>
-
-<p>You will need the makedepend utility which is a part of mesa project
-to build your linux-solo. You probably wont have this utility. You can
-download its source from following git repulsitory:
-</p>
-<pre>
- git clone git://anongit.freedesktop.org/git/xorg/util/makedepend
-</pre>
-
-<p>Get the latest stable mesa version from SourceForge (currently 7.0.3)
-<a href="http://sourceforge.net/project/showfiles.php?group_id=3">http://sourceforge.net/project/showfiles.php?group_id=3</a>
-</p>
-
-<p>Copy the miniglx folder from 7.1-prerelease to 7.0.3.
-You may also extract GLUT to 7.0.3 version at this step.
-</p>
-
-<p>Edit linux-solo.conf at /conf directory, just only compile the
-graphics driver you need, delete the unwanted drivers names from the
-list(some drivers are causing problems...)
-</p>
-<pre>
- while(build==0)
- {
- make linux-solo
-
- There will be some missing header files, copy them from 7.1-prerelease
- }
-</pre>
-
-<p>
-When complete you should have the following:
-</p>
-<ul>
-<li>lib/libGL.so - the GL library which applications link with
-</li><li>lib/*_dri_so - DRI drivers
-</li><li>lib/miniglx.conf - sample MiniGLX config file
-</li><li>progs/miniglx/* - several MiniGLX sample programs
-</li></ul>
-
-To install these files into appropriate locations in system:
-<pre>
- make install
-</pre>
-
-Now your openGL libraries are copied to /usr/local/lib and
-miniglx.conf is copied to /etc. You may copy them to /usr/lib and
-overwrite your old GL libraries. Or you may export following variable:
-
-<pre>
- export LIBGL_DRIVERS_PATH=/usr/local/lib
-</pre>
-<br>
-
-
-<h1>3. Using fbdev/DRI</h1>
-
-<p>
-If an X server currently running, exit/stop it so you're working from
-the console. Following command shuts down the x window and also the multi user support.
-</p>
-<pre>
- init 1
-</pre>
-
-<p>Also you may define the runlevel as 1 in "/etc/inittab". Your system
-will always start in single user mode and without x-window with this
-option set.
-</p><h2>3.1 Load Kernel Modules</h2>
-
-<p>
-You'll need to load the kernel modules specific to your graphics hardware.
-Typically, this consists of the agpgart module, an fbdev driver module
-and the DRM kernel module.
-</p>
-<p>
-As root, the kernel modules can be loaded as follows:
-</p>
-
-<p>
-If you have Intel i915/i945 hardware:
-</p>
-<pre> modprobe agpgart # the AGP GART module
- modprobe intelfb # the Intel fbdev driver
- modprobe i915 # the i915/945 DRI kernel module
-</pre>
-
-<p>
-If you have ATI Radeon/R200 hardware:
-</p>
-<pre> modprobe agpgart # the AGP GART module
- modprobe radeonfb # the Radeon fbdev driver
- modprobe radeon # the Radeon DRI kernel module
-</pre>
-
-<p>
-If you have ATI Rage 128 hardware:
-</p>
-<pre> modprobe agpgart # the AGP GART module
- modprobe aty128fb # the Rage 128 fbdev driver
- modprobe r128 # the Rage 128 DRI kernel module
-</pre>
-
-<p>
-If you have Matrox G200/G400 hardware:
-</p>
-<pre> modprobe agpgart # the AGP GART module
- modprobe mgafb # the Matrox fbdev driver
- modprobe mga # the Matrox DRI kernel module
-</pre>
-
-<p>
-To verify that the agpgart, fbdev and drm modules are loaded:
-</p>
-<pre> ls -l /dev/agpgart /dev/fb* /dev/dri
-</pre>
-<p>
-Alternately, use lsmod to inspect the currently installed modules.
-If you have problems, look at the output of dmesg.
-</p>
-
-
-<h2>3.2 Configuration File</h2>
-
-<p>
-review/edit /etc/miniglx.conf.
-Alternately, the MINIGLX_CONF environment variable can be used to
-indicate the location of miniglx.conf
-</p>
-
-To determine the pciBusID value, run lspci and examine the output.
-For example:
-<p></p>
-<pre> /sbin/lspci:
- 00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04)
-</pre>
-<p>
-00:02.0 indicates that pciBusID should be PCI:0:2:0
-</p>
-
-
-
-
-<h2>3.3 Running fbdev/DRI Programs</h2>
-
-<p>
-Make sure your LD_LIBRARY_PATH environment variable is set to the
-location of the libGL.so library. You may need to append other paths
-to LD_LIBRARY_PATH if libpciaccess.so is in a non-standard location,
-for example.
-</p>
-
-<p>
-Change to the <code>Mesa/progs/miniglx/</code> directory and
-start the sample_server program in the background:
-</p>
-<pre> ./sample_server &amp;
-</pre>
-
-<p>
-Then try running the <code>miniglxtest</code> program:
-</p>
-<pre> ./miniglxtest
-</pre>
-<p>
-You should see a rotating quadrilateral which changes color as it rotates.
-It will exit automatically after a bit.
-</p>
-
-<p>
-If you run other tests in the miniglx/ directory, you may want to run
-them from a remote shell so that you can stop them with ctrl-C.
-</p>
-<br>
-
-
-<h1>4.0 Troubleshooting</h1>
-
-<ol>
-<li>
-If you try to run miniglxtest and get the following:
-<br>
-<pre> [miniglx] failed to probe chipset
- connect: Connection refused
- server connection lost
-</pre>
-It means that the sample_server process is not running.
-<br>
-<br>
-</li>
-</ol>
-
-
-<h1>5.0 Programming Information</h1>
-
-<p>
-OpenGL/Mesa is interfaced to fbdev via the MiniGLX interface.
-MiniGLX is a subset of Xlib and GLX API functions which provides just
-enough functionality to setup OpenGL rendering and respond to simple
-input events.
-</p>
-
-<p>
-Since MiniGLX is a subset of the usual Xlib and GLX APIs, programs written
-to the MiniGLX API can also be run on full Xlib/GLX implementations.
-This allows some degree of flexibility for software development and testing.
-</p>
-
-<p>
-However, the MiniGLX API is not binary-compatible with full Xlib/GLX.
-Some of the structures are different and some macros/functions work
-differently.
-See the GL/miniglx.h header file for details.
-</p>
-
-
-
-</body>
-</html>
diff --git a/mesalib/docs/glfbdev-driver.html b/mesalib/docs/glfbdev-driver.html
deleted file mode 100644
index 981df7c08..000000000
--- a/mesalib/docs/glfbdev-driver.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<HTML>
-
-<TITLE>Mesa glFBDev Driver</TITLE>
-
-<link rel="stylesheet" type="text/css" href="mesa.css"></head>
-
-<BODY>
-
-<center><H1>Mesa glFBDev Driver</H1></center>
-
-
-<H1>1. Introduction</H1>
-
-<p>
-The GLFBDev driver interface allows one to do OpenGL rendering into a
-framebuffer managed with the Linux's fbdev interface.
-</p>
-
-<p>
-Basically, the programmer uses the fbdev functions to initialize the
-graphics hardware and setup the framebuffer.
-Then, using a calls to Mesa's glFBDev API functions, one can render
-into the framebuffer with the OpenGL API functions.
-</p>
-
-<p>
-Note, only software rendering is supported; there is no hardware
-acceleration.
-</p>
-
-
-<p>
-The GL/glfbdev.h header file defines the glFBDev interface.
-</p>
-
-<p>
-The progs/fbdev/glfbdevtest.c demonstrates how to use the glFBDev interface.
-</p>
-
-
-<p>
-For more information about fbdev, see the
-<a href="http://www.tldp.org/HOWTO/Framebuffer-HOWTO.html" target="_parent">
-Framebuffer Howto</a>
-</p>
-<p>
-You will need at minimum, a framebuffer device, check /dev/fb0
-</p>
-
-<h1>2. Compilation</h1>
-
-<p>
-To compile Mesa with support for the glFBDev interface:
-<pre>
- make realclean
- make linux-fbdev
-</pre>
-
-<p>
-When compilation is finished look in progs/glfbdev/ for the glfbdevtest demo.
-</p>
-<h1>3. Permissions</h1>
-
-<p>
-Typically /dev/fb/0 is grouped to the video group. It may be useful to add
-your user to the video group so the demos will not have to be run as root.
-To use fbdevglut with the prefered tty input, you should add the user to the
-tty group as well
-<p>
-
-<h1>4. Using fbdevglut</h1>
-Almost all of the programs in the progs directory use glut, and they compile with fbdevglut.
-
-<p>
-To compile the redbook sample programs:
-<pre>
- cd progs/redbook
- make
-</pre>
-</p>
-<p>glut features not supported:
-<li>Overlays
-<li>Subwindows
-<li>Input devices other than Keyboard/Mouse
-<li>No support for GLUT_MULTISAMPLE, GLUT_STEREO, or GLUT_LUMINANCE
-<li>Cursor and Menu Support will flicker in GLUT_SINGLE mode
-
-<p>Keyboard input is read by opening /dev/tty and reading keycodes in medium raw mode.
-<p>Mouse input is read from env var MOUSE, or /dev/gpmdata and should be in ms3 format.
-To forward data in this format to /dev/gpmdata, run gpm with the -Rms3 option.
-<p> glutInit allows glut programs to pass parameters to the glut library, currently the
-following options are supported for fbdevglut:
-<p><li>-geometry widthxheight -- This will force the resolution to be widthxheight instead of autodetecting.
-The modes are read from /etc/fb.modes
-<p><li>-bpp -- This will force the bitdepth to the one specified
-<p><li>-vt -- This allows you to specify the virtual terminal to attach keyboard input to. It is useful to specify when running inside screen.
-<p><li>-mousespeed -- A floating point multiplication factor to increase mouse speed
-<p><li>-nomouse -- Disable mouse support
-<p><li>-nokeyboard -- Disable keyboard support (this will probably break mouse support as well)
-<p><li>-stdin -- Use stdin for input instead of attaching to kbd in medium-raw mode.
-This will make it impossible to detect keypresses like Shift+Tab, you will also need to specify -gpmmouse for mouse support. This option can be used with a debugger, and it is possible to single step a program with gdb and set the FRAMEBUFFER environment variable to a different framebuffer for display. The program will not be able to handle vt switching on it's own, so it will always display.
-<p><li>-gpmmouse -- This will attempt to connect to the /dev/gpmctl socket using liblow
-for mouse data. Gpm does not provide this data when in graphics mode, so vt switching
-will briefly display text. This mode typically has no initial mouse delay.
-<p><li>-- Ignore any additional arguments
-<p>Notes:
-<p>
-1. The mouse pointer flickers in single buffering mode, as it must be rendered in software. Hopefully in the future there will be a way to access hardware cursors in fbdev devices.
-</p>
-</body>
-</html>
diff --git a/mesalib/docs/install.html b/mesalib/docs/install.html
index b82b1d743..313f36337 100644
--- a/mesalib/docs/install.html
+++ b/mesalib/docs/install.html
@@ -157,9 +157,6 @@ lrwxrwxrwx 1 brian users 20 Mar 26 07:53 libGLU.so.1 -> libGLU.so
lrwxrwxrwx 1 brian users 12 Mar 26 07:53 libglut.so -> libglut.so.3*
lrwxrwxrwx 1 brian users 16 Mar 26 07:53 libglut.so.3 -> libglut.so.3.7.1*
-rwxr-xr-x 1 brian users 597754 Mar 26 07:53 libglut.so.3.7.1*
-lrwxrwxrwx 1 brian users 11 Mar 26 08:04 libGLw.so -> libGLw.so.1*
-lrwxrwxrwx 1 brian users 15 Mar 26 08:04 libGLw.so.1 -> libGLw.so.1.0.0*
--rwxr-xr-x 1 brian users 20750 Mar 26 08:04 libGLw.so.1.0.0*
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
@@ -172,8 +169,6 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSM
<br>
<b>libglut</b> is the GLUT library.
<br>
-<b>libGLw</b> is the Xt/Motif OpenGL drawing area widget library.
-<br>
<b>libOSMesa</b> is the OSMesa (Off-Screen) interface library.
</p>
@@ -181,22 +176,10 @@ lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSM
If you built the DRI hardware drivers, you'll also see the DRI drivers:
</p>
<pre>
--rwxr-xr-x 1 brian users 15607851 Jul 21 12:11 ffb_dri.so
--rwxr-xr-x 1 brian users 15148747 Jul 21 12:11 i810_dri.so
--rwxr-xr-x 1 brian users 14497814 Jul 21 12:11 i830_dri.so
-rwxr-xr-x 1 brian users 16895413 Jul 21 12:11 i915_dri.so
--rwxr-xr-x 1 brian users 11320803 Jul 21 12:11 mach64_dri.so
--rwxr-xr-x 1 brian users 11418014 Jul 21 12:12 mga_dri.so
--rwxr-xr-x 1 brian users 11064426 Jul 21 12:12 r128_dri.so
-rwxr-xr-x 1 brian users 11849858 Jul 21 12:12 r200_dri.so
-rwxr-xr-x 1 brian users 16050488 Jul 21 12:11 r300_dri.so
-rwxr-xr-x 1 brian users 11757388 Jul 21 12:12 radeon_dri.so
--rwxr-xr-x 1 brian users 11232304 Jul 21 12:13 s3v_dri.so
--rwxr-xr-x 1 brian users 11062970 Jul 21 12:13 savage_dri.so
--rwxr-xr-x 1 brian users 11214212 Jul 21 12:13 sis_dri.so
--rwxr-xr-x 1 brian users 11368736 Jul 21 12:13 tdfx_dri.so
--rwxr-xr-x 1 brian users 10598868 Jul 21 12:13 trident_dri.so
--rwxr-xr-x 1 brian users 10997120 Jul 21 12:13 unichrome_dri.so
</pre>
<p>
@@ -327,7 +310,6 @@ Documentation for other environments (some may be very out of date):
<LI><A HREF="README.GGI">README.GGI</A> - GGI
<LI><A HREF="README.3DFX">README.3DFX</A> - 3Dfx/Glide driver
<LI><A HREF="README.AMIWIN">README.AMIWIN</A> - Amiga Amiwin
-<LI><A HREF="README.BEOS">README.BEOS</A> - BeOS
<LI><A HREF="README.D3D">README.D3D</A> - Direct3D driver
<LI><A HREF="README.DJ">README.DJ</A> - DJGPP
<LI><A HREF="README.LYNXOS">README.LYNXOS</A> - LynxOS
diff --git a/mesalib/docs/libGL.txt b/mesalib/docs/libGL.txt
index 750917d10..d06b4e62a 100644
--- a/mesalib/docs/libGL.txt
+++ b/mesalib/docs/libGL.txt
@@ -1,197 +1,197 @@
-
-
-
-Introduction
-------------
-
-This document describes the implementation of the XFree86 4.0 libGL.so
-library defined by the Linux/OpenGL Base specification found at
-http://reality.sgi.com/opengl/linux/linuxbase.html.
-
-The documentation is divided into two sections:
- User's Guide
- Driver Developer's Guide
-
-Author: Brian Paul (brian@precisioninsight.com)
-Date: February 2000
-
-
-
-User's Guide
-------------
-
-Using libGL.so
-
-The libGL.so library defines the gl- and glX-prefixed functions needed to
-run OpenGL programs. OpenGL client applications should link with the
--lGL option to use it.
-
-libGL.so serves two primary functions: GLX protocol generation for indirect
-rendering and loading/management of hardware drivers for direct rendering.
-
-When libGL.so initializes itself it uses the DRI to determine the
-appropriate hardware driver for each screen on the local X display.
-The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
-directory. Drivers are named with the convention <name>_dri.so where
-<name> is a driver such as "tdfx", "i810", "gamma", etc.
-
-The LIBGL_DRIVERS_DIR environment variable may be used to specify a
-different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
-This environment variable is ignored in setuid programs for security
-reasons.
-
-When libGL.so is unable to locate appropriate hardware drivers it will
-fall back to using indirect GLX rendering.
-
-To aid in solving problems, libGL.so will print diagnostic messages to
-stderr if the LIBGL_DEBUG environment variable is defined.
-
-libGL.so is thread safe. The overhead of thread safety for common,
-single-thread clients is negligible. However, the overhead of thread
-safety for multi-threaded clients is significant. Each GL API call
-requires two calls to pthread_get_specific() which can noticably
-impact performance. Warning: libGL.so is thread safe but individual
-DRI drivers may not be. Please consult the documentation for a driver
-to learn if it is thread safe.
-
-
-
-Indirect Rendering
-
-You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
-environment variable. Hardware acceleration will not be used.
-
-
-
-libGL.so Extensibility
-
-libGL.so is designed to be extended without upgrading. That is,
-drivers may install new OpenGL extension functions into libGL.so
-without requiring libGL.so to be replaced. Clients of libGL.so should
-use the glXGetProcAddressEXT() function to obtain the address of
-functions by name. For more details of GLX_ARB_get_proc_address see
-http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
-
-libGL.so is also designed with flexibility such that it may be used
-with many generations of hardware drivers to come.
-
-
-
-
-Driver Developer's Guide
-------------------------
-
-This section describes the requirements to make an XFree86 4.0
-libGL.so-compatible hardware driver. It is not intended for end
-users of libGL.so.
-
-
-XFree86 source files
-
-libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
-Specifically, libGL.so is built from:
-
- xc/lib/GL/glx/*.c
- xc/lib/dri/XF86dri.c
- xc/lib/dri/dri_glx.c
- xc/lib/GL/mesa/src/glapi.c
- xc/lib/GL/mesa/src/glapitemp.h
- xc/lib/GL/mesa/src/glapitable.h
- xc/lib/GL/mesa/src/glapioffsets.h
- xc/lib/GL/mesa/src/glapinoop.c
- xc/lib/GL/mesa/src/glheader.h
- xc/lib/GL/mesa/src/glthread.c
- xc/lib/GL/mesa/src/glthread.h
- xc/lib/GL/mesa/src/X86/glapi_x86.S
- xc/lib/GL/mesa/src/X86/assyntax.h
-
-Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They
-have no dependencies on the rest of Mesa and are designed to be reusable
-in a number of projects.
-
-The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
-of GL functions. They are not required; C-based dispatch can be used
-instead, with a slight performance penalty.
-
-
-
-Driver loading and binding
-
-When libGL.so initializes itself (via the __glXInitialize function) a
-call is made to driCreateDisplay(). This function uses DRI facilities
-to determine the driver file appropriate for each screen on the local
-display. Each screen's driver is then opened with dlopen() and asked
-for its __driCreateScreen() function. The pointers to the __driCreateScreen()
-functions are kept in an array, indexed by screen number, in the
-__DRIdisplayRec struct.
-
-When a driver's __driCreateScreen() function is called, it must initialize
-a __DRIscreenRec struct. This struct acts as the root of a tree of
-function pointers which are called to create and destroy contexts and
-drawables and perform all the operations needed by the GLX interface.
-See the xc/lib/GL/glx/glxclient.h file for details.
-
-
-
-Dynamic Extension Function Registration
-
-In order to provide forward compatibility with future drivers, libGL.so
-allows drivers to register new OpenGL extension functions which weren't
-known when libGL.so was built.
-
-The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
-as soon as libGL.so is loaded. This is done with gcc's constructor
-attribute. This mechanism will likely have to be changed for other compilers.
-
-register_extensions() loops over all local displays and screens, determines
-the DRI driver for each, and calls the driver's __driRegisterExtensions()
-function, if present.
-
-The __driRegisterExtensions() function can add new entrypoints to libGL
-by calling:
-
- GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
-
-The parameters are the name of the function (such as "glFoobarEXT") and the
-offset of the dispatch slot in the API dispatch table. The return value
-indicates success (GL_TRUE) or failure (GL_FALSE).
-
-_glapi_add_entrypoint() will synthesize entrypoint code in assembly
-language. Assembly languages is required since parameter passing
-can't be handled correctly using a C-based solution.
-
-The address of the new entrypoint is obtained by calling the
-glXGetProcAddressARB() function.
-
-The dispatch offset number MUST be a number allocated by SGI in the same
-manner in which new GL_* constants are allocated. Using an arbitrary
-offset number will result in many problems.
-
-
-
-Dispatch Management
-
-When a GL context is made current, the driver must install its dispatch
-table as the current dispatch table. This is done by calling
-
- void _glapi_set_dispatch(struct _glapi_table *dispatch);
-
-This will install the named dispatch table for the calling thread.
-The current dispatch table for a thread can be obtained by calling
-
- struct _glapi_table *_glapi_get_dispatch(void);
-
-For higher performance in the common single-thread case, the global
-variable _glapi_Dispatch will point to the current dispatch table.
-This variable will be NULL when in multi-thread mode.
-
-
-
-Context Management
-
-libGL.so uses the XFree86 xthreads package to manage a thread-specific
-current context pointer. See __glXGet/SetCurrentContext() in glext.c
-
-Drivers may use the _glapi_set/get_context() functions to maintain
-a private thread-specific context pointer.
-
+
+
+
+Introduction
+------------
+
+This document describes the implementation of the XFree86 4.0 libGL.so
+library defined by the Linux/OpenGL Base specification found at
+http://reality.sgi.com/opengl/linux/linuxbase.html.
+
+The documentation is divided into two sections:
+ User's Guide
+ Driver Developer's Guide
+
+Author: Brian Paul (brian@precisioninsight.com)
+Date: February 2000
+
+
+
+User's Guide
+------------
+
+Using libGL.so
+
+The libGL.so library defines the gl- and glX-prefixed functions needed to
+run OpenGL programs. OpenGL client applications should link with the
+-lGL option to use it.
+
+libGL.so serves two primary functions: GLX protocol generation for indirect
+rendering and loading/management of hardware drivers for direct rendering.
+
+When libGL.so initializes itself it uses the DRI to determine the
+appropriate hardware driver for each screen on the local X display.
+The hardware drivers are expected to be in the /usr/X11R6/lib/modules/dri/
+directory. Drivers are named with the convention <name>_dri.so where
+<name> is a driver such as "radeon", "i965", "nouveau", etc.
+
+The LIBGL_DRIVERS_DIR environment variable may be used to specify a
+different DRI modules directory, overriding /usr/X11R6/lib/modules/dri/.
+This environment variable is ignored in setuid programs for security
+reasons.
+
+When libGL.so is unable to locate appropriate hardware drivers it will
+fall back to using indirect GLX rendering.
+
+To aid in solving problems, libGL.so will print diagnostic messages to
+stderr if the LIBGL_DEBUG environment variable is defined.
+
+libGL.so is thread safe. The overhead of thread safety for common,
+single-thread clients is negligible. However, the overhead of thread
+safety for multi-threaded clients is significant. Each GL API call
+requires two calls to pthread_get_specific() which can noticably
+impact performance. Warning: libGL.so is thread safe but individual
+DRI drivers may not be. Please consult the documentation for a driver
+to learn if it is thread safe.
+
+
+
+Indirect Rendering
+
+You can force indirect rendering mode by setting the LIBGL_ALWAYS_INDIRECT
+environment variable. Hardware acceleration will not be used.
+
+
+
+libGL.so Extensibility
+
+libGL.so is designed to be extended without upgrading. That is,
+drivers may install new OpenGL extension functions into libGL.so
+without requiring libGL.so to be replaced. Clients of libGL.so should
+use the glXGetProcAddressEXT() function to obtain the address of
+functions by name. For more details of GLX_ARB_get_proc_address see
+http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.spec
+
+libGL.so is also designed with flexibility such that it may be used
+with many generations of hardware drivers to come.
+
+
+
+
+Driver Developer's Guide
+------------------------
+
+This section describes the requirements to make an XFree86 4.0
+libGL.so-compatible hardware driver. It is not intended for end
+users of libGL.so.
+
+
+XFree86 source files
+
+libGL.so is built inside XFree86 with sources found in xc/lib/GL/.
+Specifically, libGL.so is built from:
+
+ xc/lib/GL/glx/*.c
+ xc/lib/dri/XF86dri.c
+ xc/lib/dri/dri_glx.c
+ xc/lib/GL/mesa/src/glapi.c
+ xc/lib/GL/mesa/src/glapitemp.h
+ xc/lib/GL/mesa/src/glapitable.h
+ xc/lib/GL/mesa/src/glapioffsets.h
+ xc/lib/GL/mesa/src/glapinoop.c
+ xc/lib/GL/mesa/src/glheader.h
+ xc/lib/GL/mesa/src/glthread.c
+ xc/lib/GL/mesa/src/glthread.h
+ xc/lib/GL/mesa/src/X86/glapi_x86.S
+ xc/lib/GL/mesa/src/X86/assyntax.h
+
+Understand that the mesa/src/gl*.[ch] files are not tied to Mesa. They
+have no dependencies on the rest of Mesa and are designed to be reusable
+in a number of projects.
+
+The glapi_x86.X and assyntax.h files implement x86-optimized dispatch
+of GL functions. They are not required; C-based dispatch can be used
+instead, with a slight performance penalty.
+
+
+
+Driver loading and binding
+
+When libGL.so initializes itself (via the __glXInitialize function) a
+call is made to driCreateDisplay(). This function uses DRI facilities
+to determine the driver file appropriate for each screen on the local
+display. Each screen's driver is then opened with dlopen() and asked
+for its __driCreateScreen() function. The pointers to the __driCreateScreen()
+functions are kept in an array, indexed by screen number, in the
+__DRIdisplayRec struct.
+
+When a driver's __driCreateScreen() function is called, it must initialize
+a __DRIscreenRec struct. This struct acts as the root of a tree of
+function pointers which are called to create and destroy contexts and
+drawables and perform all the operations needed by the GLX interface.
+See the xc/lib/GL/glx/glxclient.h file for details.
+
+
+
+Dynamic Extension Function Registration
+
+In order to provide forward compatibility with future drivers, libGL.so
+allows drivers to register new OpenGL extension functions which weren't
+known when libGL.so was built.
+
+The register_extensions() function in xc/lib/GL/dri/dri_glx.c is called
+as soon as libGL.so is loaded. This is done with gcc's constructor
+attribute. This mechanism will likely have to be changed for other compilers.
+
+register_extensions() loops over all local displays and screens, determines
+the DRI driver for each, and calls the driver's __driRegisterExtensions()
+function, if present.
+
+The __driRegisterExtensions() function can add new entrypoints to libGL
+by calling:
+
+ GLboolean _glapi_add_entrypoint(const char *funcName, GLuint offset)
+
+The parameters are the name of the function (such as "glFoobarEXT") and the
+offset of the dispatch slot in the API dispatch table. The return value
+indicates success (GL_TRUE) or failure (GL_FALSE).
+
+_glapi_add_entrypoint() will synthesize entrypoint code in assembly
+language. Assembly languages is required since parameter passing
+can't be handled correctly using a C-based solution.
+
+The address of the new entrypoint is obtained by calling the
+glXGetProcAddressARB() function.
+
+The dispatch offset number MUST be a number allocated by SGI in the same
+manner in which new GL_* constants are allocated. Using an arbitrary
+offset number will result in many problems.
+
+
+
+Dispatch Management
+
+When a GL context is made current, the driver must install its dispatch
+table as the current dispatch table. This is done by calling
+
+ void _glapi_set_dispatch(struct _glapi_table *dispatch);
+
+This will install the named dispatch table for the calling thread.
+The current dispatch table for a thread can be obtained by calling
+
+ struct _glapi_table *_glapi_get_dispatch(void);
+
+For higher performance in the common single-thread case, the global
+variable _glapi_Dispatch will point to the current dispatch table.
+This variable will be NULL when in multi-thread mode.
+
+
+
+Context Management
+
+libGL.so uses the XFree86 xthreads package to manage a thread-specific
+current context pointer. See __glXGet/SetCurrentContext() in glext.c
+
+Drivers may use the _glapi_set/get_context() functions to maintain
+a private thread-specific context pointer.
+
diff --git a/mesalib/docs/postprocess.html b/mesalib/docs/postprocess.html
new file mode 100644
index 000000000..2a3796942
--- /dev/null
+++ b/mesalib/docs/postprocess.html
@@ -0,0 +1,56 @@
+<HTML>
+
+<TITLE>Gallium Post-processing</TITLE>
+
+<link rel="stylesheet" type="text/css" href="mesa.css"></head>
+
+<BODY>
+
+<H1>Gallium Post-processing</H1>
+
+<p>
+The Gallium drivers support user-defined image post-processing.
+At the end of drawing a frame a post-processing filter can be applied to
+the rendered image.
+Example filters include morphological antialiasing and cell shading.
+</p>
+
+<p>
+The filters can be toggled per-app via driconf, or per-session via the
+corresponding environment variables.
+</p>
+
+<p>
+Multiple filters can be used together.
+</p>
+
+
+<H2>PP environment variables</H2>
+
+<ul>
+<li>PP_DEBUG - If defined debug information will be printed to stderr.
+</ul>
+
+<h2>Current filters</h2>
+
+<ul>
+<li>pp_nored, pp_nogreen, pp_noblue - set to 1 to remove the corresponding color channel.
+These are basic filters for easy testing of the PP queue.
+<li>pp_jimenezmlaa, pp_jimenezmlaa_color -
+<a href="http://www.iryokufx.com/mlaa/" target=_blank>Jimenez's MLAA</a>
+is a morphological antialiasing filter.
+The two versions use depth and color data, respectively.
+Which works better depends on the app - depth will not blur text, but it will
+miss transparent textures for example.
+Set to a number from 2 to 32, roughly corresponding to quality.
+Numbers higher than 8 see minimizing gains.
+<li>pp_celshade - set to 1 to enable cell shading (a more complex color filter).
+</ul>
+
+
+<br>
+<br>
+
+
+</BODY>
+</HTML>
diff --git a/mesalib/docs/sourcetree.html b/mesalib/docs/sourcetree.html
index 2e2d1d3f2..713e25b01 100644
--- a/mesalib/docs/sourcetree.html
+++ b/mesalib/docs/sourcetree.html
@@ -153,8 +153,6 @@ each directory.
<li><b>glx</b> - The GLX library code for building libGL. This is used for
direct rendering drivers. It will dynamically load one of the
xxx_dri.so drivers.
- <li><b>glw</b> - Widgets for Xt/Motif.
- <li><b>glew</b> - OpenGL Extension Wrangler library (used by demo programs)
</ul>
<li><b>progs</b> - OpenGL test and demonstration programs
<li><b>lib</b> - where the GL libraries are placed
diff --git a/mesalib/docs/subset.html b/mesalib/docs/subset.html
index 4ac2eadff..c706381e3 100644
--- a/mesalib/docs/subset.html
+++ b/mesalib/docs/subset.html
@@ -12,7 +12,7 @@
In 2002/2003 Tungsten Graphics was contracted to develop a subset Mesa/Radeon
driver for an embedded environment. The result is a reduced-size DRI driver
for the ATI R200 chip, for use with
-<a href="fbdev-dri.html">fbdev/DRI environment</a>.
+fbdev/DRI environment.
</p>
<p>
diff --git a/mesalib/docs/systems.html b/mesalib/docs/systems.html
index 5137b074e..03db779a1 100644
--- a/mesalib/docs/systems.html
+++ b/mesalib/docs/systems.html
@@ -16,14 +16,13 @@ X development environment to use Mesa.
<p>
The DRI hardware drivers for the X.org server and XFree86 provide
-hardware accelerated rendering for chips from ATI, Intel, Matrox, 3dfx
-and others on Linux and FreeBSD.
+hardware accelerated rendering for chips from ATI, Intel, and NVIDIA
+on Linux and FreeBSD.
</p>
<p>
Drivers for other assorted platforms include:
-the Amiga, Apple Macintosh, BeOS, NeXT, OS/2, MS-DOS, VMS, Windows
-9x/NT, and Direct3D.
+the Apple Macintosh and Windows.
</p>
<p>
@@ -51,7 +50,6 @@ They can be saved if someone steps up to help.
<LI>3dfx/Glide <A HREF="README.3DFX">(README.3DFX)</A>
<LI>GGI <A HREF="README.GGI">(README.GGI)</A>
<LI>Amiga Amiwin <A HREF="README.AMIWIN">(README.AMIWIN)</A>
-<LI>BeOS <A HREF="README.BEOS">(README.BEOS)</A>
<LI>Direct3D driver <A HREF="README.D3D">(README.D3D)</A>
<LI>DJGPP <A HREF="README.DJ">(README.DJ)</A>
<LI>LynxOS <A HREF="README.LYNXOS">(README.LYNXOS)</A>