Reduce the amount of debug output, while still printing important messages.
[mesa.git] / docs / faq.html
index f60130dbbed39f49f36ab5fe5289f4defc22699e..c9081c9aaadc09e46ac23f6dcaa2912b0e9b0e67 100644 (file)
@@ -7,7 +7,7 @@
 
 <center>
 <h1>Mesa Frequently Asked Questions</h1>
-Last updated: 26 November 2003
+Last updated: 17 November 2004
 </center>
 
 <br>
@@ -53,7 +53,7 @@ the 3Dfx Glide/Voodoo driver, an old S3 driver, etc) but the DRI drivers
 are the modern ones.
 </p>
 
-<h2>1.3 What purpose does Mesa (software-based rendering) serve today?</h2>
+<h2>1.3 What purpose does Mesa serve today?</h2>
 <p>
 Hardware-accelerated OpenGL implementations are available for most popular
 operating systems today.
@@ -80,7 +80,39 @@ Still, Mesa serves at least these purposes:
 </li>
 </ul>
 
-<h2>1.4 How do I upgrade my DRI installation to use a new Mesa release?</h2>
+
+<h2>1.4 What's the difference between"Stand-Alone" Mesa and the DRI drivers?</h2>
+<p>
+<em>Stand-alone Mesa</em> is the original incarnation of Mesa.
+On systems running the X Window System, it does all its rendering through
+the Xlib API.
+<ul>
+<li>The GLX API is supported, but it's really just an emulation of the
+     real thing.
+<li>The GLX wire protocol is not supported and there's no OpenGL extension
+    loaded by the X server.
+<li>There is no hardware acceleration.
+<li>The OpenGL library, libGL.so, contains everything (the programming API,
+    the GLX functions and all the rendering code).
+</ul>
+</p>
+<p>
+Alternately, Mesa acts as the core for a number of OpenGL hardware drivers
+within the DRI (Direct Rendering Infrastructure):
+<ul>
+<li>The libGL.so library provides the GL and GLX API functions, a GLX
+    protocol encoder, and a device driver loader.
+<li>The device driver modules (such as r200_dri.so) contain a built-in
+    copy of the core Mesa code.
+<li>The X server loads the GLX module.
+    The GLX module decodes incoming GLX protocol and dispatches the commands
+    to a rendering module.
+    For the DRI, this module is basically a software Mesa renderer.
+</ul>
+
+
+
+<h2>1.5 How do I upgrade my DRI installation to use a new Mesa release?</h2>
 <p>
 You don't!  A copy of the Mesa source code lives inside the XFree86/DRI source
 tree and gets compiled into the individual DRI driver modules.
@@ -100,7 +132,7 @@ if there's newer drivers.
 </p>
 
 
-<h2>1.5 Are there other open-source implementations of OpenGL?</h2>
+<h2>1.6 Are there other open-source implementations of OpenGL?</h2>
 <p>
 Yes, SGI's <a href="http://oss.sgi.com/projects/ogl-sample/index.html"
 target="_parent">
@@ -109,6 +141,11 @@ The SI was written during the time that OpenGL was originally designed.
 Unfortunately, development of the SI has stagnated.
 Mesa is much more up to date with modern features and extensions.
 </p>
+
+<p>
+<a href="http://ogl-es.sourceforge.net" target="_parent">Vincent</a> is
+an open-source implementation of OpenGL ES for mobile devices.
+
 <p>
 <a href="http://www.dsbox.com/minigl.html" target="_parent">miniGL</a>
 is a subset of OpenGL for PalmOS devices.
@@ -130,12 +167,13 @@ but it does export the OpenGL API.  It allows tiled rendering, sort-last
 rendering, etc.
 </p>
 
-
 <p>
 There may be other open OpenGL implementations, but Mesa is the most
 popular and feature-complete.
 </p>
 
+
+
 <br>
 <br>
 
@@ -151,38 +189,24 @@ has Mesa packages (like RPM or DEB) which you can easily install.
 </a></p>
 
 
-<h2><a name="part2">2.2 Running <code>configure; make</code> Doesn't Work</a></h2>
-<p>
-<a name="part2">Unfortunately, the GNU autoconf/automake/libtool system doesn't seem to work
-too well on non GNU/Linux systems, even after installing gmake, gcc, etc.
-For that reason, Mesa's <b>old-style</b> makefile system is still included.
-The old-style system uses good old traditional Makefiles.  Try the following:
-</a></p><pre><a name="part2">  cd Mesa-x.y.z
-  cp Makefile.X11 Makefile
-  make
-</a></pre>
-<a name="part2">You'll see a list of system configurations from which to choose.
-For example:
-</a><pre><a name="part2">  make linux-x86
-</a></pre>
-<p>
-<a name="part2">If you're experienced with GNU autoconf/automake/libtool and think you can help
-with maintence, contact the Mesa developers.
-FYI, the Mesa developers generally don't use the autoconf/automake system.
-We're especially annoyed with the fact that a +5000-line script (libtool)
-is needed to make shared libraries (ugh).
-</a></p>
+<h2><a name="part2">2.2 Running <code>configure; make</code> doesn't Work</a></h2>
+<p>
+Mesa no longer supports GNU autoconf/automake.  Why?
+<ul>
+<li>It seemed to seldom work on anything but Linux
+<li>The config files were hard to maintain and hard to understand
+<li>libtool caused a lot of grief
+</ul>
 
-<h2><a name="part2">2.3 Mesa still doesn't compile</a></h2>
 <p>
-<a name="part2">If the old-style Makefile system doesn't work either, make sure you have
-the most recent version of Mesa.
-Otherwise, file a bug report or post to the Mesa3d-users mailing list.
-Give as much info as possible when describing your problem.
-</a></p>
+Now, Mesa again uses a conventional Makefile system (as it did originally).
+Basically, each Makefile in the tree includes one of the configuration
+files from the config/ directory.
+The config files specify all the variables for a variety of popular systems.
+</p>
 
 
-<h2><a name="part2">2.4 I get undefined symbols such as bgnpolygon, v3f, etc...</a></h2>
+<h2><a name="part2">2.3 I get undefined symbols such as bgnpolygon, v3f, etc...</a></h2>
 <p>
 <a name="part2">You're application is written in IRIS GL, not OpenGL.
 IRIS GL was the predecessor to OpenGL and is a different thing (almost)
@@ -191,7 +215,7 @@ Mesa's not the solution.
 </a></p>
 
 
-<h2><a name="part2">2.5 Where is the GLUT library?</a></h2>
+<h2><a name="part2">2.4 Where is the GLUT library?</a></h2>
 <p>
 <a name="part2">GLUT (OpenGL Utility Toolkit) is in the separate MesaDemos-x.y.z.tar.gz file.
 If you don't already have GLUT installed, you should grab the MesaDemos
@@ -200,11 +224,11 @@ package and unpack it before compiling Mesa.
 
 
 
-<h2><a name="part2">2.6 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">Linux ABI</a>
-standard.
+</a><a href="http://oss.sgi.com/projects/ogl-sample/ABI/index.html"
+target="_parent">Linux ABI</a> standard.
 Basically you'll want the following:
 </p>
 <ul>
@@ -260,7 +284,7 @@ hardware it has detected.
 </a></p>
 <p>
 <a name="part3">If your DRI-based driver isn't working, go to the
-</a><a href="http://dri.sf.net/">DRI website</a> for trouble-shooting information.
+</a><a href="http://dri.sf.net/" target="_parent">DRI website</a> for trouble-shooting information.
 </p>
 
 
@@ -268,7 +292,8 @@ hardware it has detected.
 <p>
 Make sure the ratio of the far to near clipping planes isn't too great.
 Look
-<a href="http://www.sgi.com/software/opengl/advanced97/notes/node18.html">
+<a href="http://www.sgi.com/software/opengl/advanced97/notes/node18.html"
+target="_parent">
 here</a> for details.
 </p>
 <p>
@@ -324,7 +349,7 @@ will fix the problem.
 is discussed.
 </a></p>
 <p>
-<a name="part4">The </a><a href="http://www.opengl.org/developers/documentation/specs.html">
+<a name="part4">The </a><a href="http://www.opengl.org/developers/documentation/specs.html" target="_parent">
 OpenGL Specification</a> is the bible for OpenGL implemention work.
 You should read it.
 </p>
@@ -356,5 +381,22 @@ the archives) is a good way to get information.
 </p>
 
 
+<h2>4.3 Why isn't GL_EXT_texture_compression_s3tc implemented in Mesa and/or the DRI drivers?</h2>
+<p>
+The <a href="http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt" target="_parent">specification for the extension</a>
+indicates that there are intellectual property (IP) and/or patent issues
+to be dealt with.
+</p>
+<p>We've been unsucessful in getting a response from S3 (or whoever owns
+the IP nowadays) to indicate whether or not an open source project can
+implement the extension (specifically the compression/decompression
+algorithms).
+</p>
+<p>
+Until we can get official permission to do so, this extension will not
+be implemented in Mesa.
+</p>
+
+
 </body>
 </html>