docs: document glMultiDrawElements() fix
[mesa.git] / docs / README.3DFX
index 37f2d0cc67c25ad31299f3f5d3dea935fb1765a3..037e8fa7cc6c3a32977cfc2ec026679fc35a4eac 100644 (file)
 
-                     3Dfx Glide device driver for Mesa 3.1
-                               (see below for FAQ)
+                            3Dfx Glide device driver
 
 
-This software is distributed under the terms of the GNU Library
-General Public License, see the LICENSE file for details.
+
+Requirements:
+-------------
+
+A Voodoo-based videocard/accelerator
+DOS (with DJGPP), Windows9x/2k (with MinGW), Linux
+Glide3x library for your OS
+
+http://sourceforge.net/projects/glide/
+
+
+
+How to compile:
+---------------
+
+DJGPP:
+   Place the Glide3 SDK in the top Mesa directory:
+       $(MESA)/glide3/include/
+               3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h
+       $(MESA)/glide3/lib/
+               libgld3x.a, libgld3i.a, glide3x.dxe
+   Type:
+       make -f Makefile.DJ X86=1 FX=1
+   Look into the makefile for further information.
+
+MinGW:
+   Place the Glide3 SDK in the top Mesa directory:
+       $(MESA)/glide3/include/
+               3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h
+       $(MESA)/glide3/lib/
+               libglide3x.a, glide3x.dll
+   Type:
+       make -f Makefile.mgw X86=1 FX=1
+   Look into the makefile for further information.
+
+Linux:
+   Place the Glide3 SDK in /usr/local/glide
+       /usr/local/glide/include/
+               3dfx.h, g3ext.h, glide.h, glidesys.h, glideutl.h, sst1vid.h
+       /usr/local/glide/lib/
+               libglide3x.a, libglide3x.so
+   Type:
+       make linux-glide
+       or
+       make linux-x86-glide
+
+
+
+Compilation defines:
+--------------------
+
+FX_DEBUG
+       enable driver debug code
+FX_TRAP_GLIDE
+       enable Glide trace code
+FX_PACKEDCOLOR
+       use packed color in vertex structure
+FX_TC_NAPALM
+       map GL_COMPRESSED_RGB[A] to FXT1. Works with VSA100-based cards only.
+FX_COMPRESS_S3TC_AS_FXT1_HACK
+       map S3TC to FXT1
+FX_RESCALE_BIG_TEXURES_HACK
+       fake textures larger than HW can support
+       (see MESA_FX_MAXLOD environment variable)
+
+
+
+Environment variables:
+----------------------
+
+The following environment variables affect MesaFX. Those that affect Glide
+only, are beyond the scope of this section. Entries that don't have a "Value"
+field, can have any value whatsoever
+       ex: set MESA_FX_IGNORE_CMBEXT=y
+
+"Note" (*) means that the environment variable affects Glide, too; also, if
+the var is not found in the environment, it is searched in windoze registry.
+"Note" (!) means that the environment variable is not working as expected;
+may have undefined effects, might have effects only at Glide level or might
+not have any effect whatsoever. Caveat emptor! Those are to be revised soon.
+
+It is recommended to leave the envvars alone, so that Mesa/Glide will run with
+default values. Use them only when you experience crashes or strange behavior.
+
+FX_GLIDE_NUM_TMU
+       OS: all
+       HW: dual-TMU cards (Voodoo2, Avenger, Napalm)
+       Desc: force single-TMU
+       Note: (*)
+       Value: "1"
+FX_GLIDE_SWAPPENDINGCOUNT
+       OS: all
+       HW: all
+       Desc: max # of buffers allowed to build up
+       Note: (*) (!)
+       Value: "0", "1", "2", "3", "4", "5" or "6"
+FX_GLIDE_SWAPINTERVAL
+       OS: all
+       HW: all
+       Desc: number of vertical retraces to wait before swapping
+       Note: (*) (!) works only at Glide-level?
+SSTH3_SLI_AA_CONFIGURATION
+       OS: all
+       HW: VSA100-based cards
+       Desc: SLI/AA setup
+       Note: (*) (!) works only at Glide-level?
+       Value:
+           1, 2, 4 chip cards
+               "0" - SLI & AA disable
+               "1" - SLI disabled, 2 sample AA enabled
+           2, 4 chip cards
+               "2" - 2-way SLI enabled, AA disabled
+               "3" - 2-way SLI enabled, 2 sample AA enabled
+               "4" - SLI disabled, 4 sample AA enabled
+           4 chip cards
+               "5" - 4-way SLI enabled, AA disabled
+               "6" - 4-way SLI enabled, 2 sample AA enabled
+               "7" - 2-way SLI enabled, 4 sample AA enabled
+               "8" - SLI disabled, 8 sample AA enabled 
+SST_DUALHEAD
+       OS: win32
+       HW: ?
+       Desc: ?
+       Note: (!) disabled?
+MESA_FX_NO_SIGNALS
+       OS: linux
+       HW: all
+       Desc: avoid installing signals
+       Note: (!) untested!
+MESA_FX_INFO
+       OS: all
+       HW: all
+       Desc: verbose to stderr
+       Value: any; special value "r" to redirect stderr to MESA.LOG
+MESA_FX_NOSNAP
+       OS: all
+       HW: Voodoo1, Rush, Banshee
+       Desc: do not snap vertices inside Mesa
+       Note: to be used with Glide3x that snaps vertices internally
+MESA_FX_POINTCAST
+       OS: all
+       HW: dual-TMU cards (some Voodoo1, Voodoo2, Avenger, Napalm)
+       Desc: try to use pointcast palette
+       Note: may give adverse effects on UMA cards (Avenger, Napalm)
+MESA_FX_IGNORE_PALEXT
+       OS: all
+       HW: all
+       Desc: disable 6666 palette
+MESA_FX_IGNORE_PIXEXT
+       OS: all
+       HW: Napalm
+       Desc: force 565 16bpp mode (traditional Voodoo, no 32/15bpp)
+MESA_FX_IGNORE_TEXFMT
+       OS: all
+       HW: Napalm
+       Desc: disable 32bit textures
+MESA_FX_IGNORE_CMBEXT
+       OS: all
+       HW: Napalm
+       Desc: disable Napalm combiners (color/alpha/texture)
+       Note: this option allows dual-TMU cards perform single-pass
+             trilinear, but some advanced (multi)texturing modes
+             won't work (GL_EXT_texture_env_combine)
+MESA_FX_IGNORE_MIREXT
+       OS: all
+       HW: all
+       Desc: disable mirror extension
+MESA_FX_IGNORE_TEXUMA
+       OS: all
+       HW: all
+       Desc: disable UMA
+MESA_FX_IGNORE_TEXUS2
+       OS: all
+       HW: all
+       Desc: disable Texus2
+MESA_FX_MAXLOD
+       OS: all
+       HW: non VSA-100 cards
+       Desc: enable large texture support using SW rescaling
+       Value:
+           "9"  - 512x512 textures
+           "10" - 1024x1024 textures
+           "11" - 2048x2048 textures
+MESA_FX_ALLOW_VP
+       OS: all
+       HW: all
+       Desc: allow vertex program extensions
+MESA_GLX_FX
+       OS: linux
+       HW: Voodoo1, Rush, Voodoo2
+       Desc: display mode
+       Note: (!) experimental
+       Value:
+           "w" - windowed mode
+           "f" - fullscreen mode
+           "d" - disable glide driver
+       OS: win32
+       HW: Rush, Banshee, Avenger, Napalm
+       Desc: display mode
+       Note: (!) experimental
+       Value:
+           "w" - windowed mode
+
+
+
+Contact:
+--------
+
+Daniel Borca <dborca 'at' users 'dot' sourceforge 'dot' net>
+Hiroshi Morii <koolsmoky 'at' users 'dot' sourceforge 'dot' net>
+
+
+
+WARNING! The info below this line is outdated (yet some of it useful). WARNING!
+*******************************************************************************
+
+
+
+Info for Mesa 4.1
+-----------------
+
+The 3dfx Glide driver in Mesa is disabled by default.  Not too many people
+use this driver anymore and at some point down the road it will be dropped.
+
+To use/enable the Glide driver either do this:
+
+'./configure --with-glide=DIR'    Where DIR is the location of Glide, like
+                                  /usr/ or /usr/local
+
+OR
+
+'make linux-x86-glide'     If using the old-style Makefile system.
+
+The rest of this file hasn't changed since Mesa 3.3.  Some of it's out of
+date, but some is still valid.
 
 
 
@@ -17,8 +249,6 @@ What do you need ?
          under Linux (more information in the "Useful Glide Environment
          Variables");
 
-       - Mesa 3.1;
-
        - The 3Dfx Glide library 2.3 or later for your OS (the 2.4 works fine).
          The Voodoo2 requires the Glide library 2.51. The Glide 3.1 is not
          compatible with the Glide 2.x so it doesn't work with the current
@@ -27,8 +257,6 @@ What do you need ?
        - A compiler supported by the Glide library (Micro$oft VC++ (tested),
          Watcom (tested), GCC for Linux (tested), etc.);
 
-       - A lot of patience, this is an alpha release.
-
        - It's nice to have two monitors - one for your normal graphics
          card and one for your 3Dfx card. If something goes wrong with
          an application using the 3Dfx hardware you can still see your
@@ -189,9 +417,9 @@ Doing more with Mesa & Linux Glide:
           quality. However you can use any visual depth supported by X.
 
        2. Set the following environment variables:
-               export MESA_GLX_FX="window"     // to enable window rendering
-               export SST_VGA_PASS=1   // to stop video signal switching
-               export SST_NOSHUTDOWN=1 // to stop video signal switching
+               export MESA_GLX_FX="window"     # to enable window rendering
+               export SST_VGA_PASS=1   # to stop video signal switching
+               export SST_NOSHUTDOWN=1 # to stop video signal switching
            OR
                setenv MESA_GLX_FX window
                setenv SST_VGA_PASS 1
@@ -209,6 +437,9 @@ Doing more with Mesa & Linux Glide:
        visual depth doesn't match the Voodoo framebufffer bit per pixel, it
        is required also a pixel format translation).
 
+       NOTE: the in-window rendering feature only works with double-buffering.
+
+
         On the fly switching between in window rendering and full screen rendering
        --------------------------------------------------------------------------
 
@@ -244,7 +475,7 @@ Doing more with Mesa & Linux Glide:
        Rendering into an X window with the X11 software driver:
         --------------------------------------------------------
 
-       Undefine the MESA_GLX_FX env var and your GLX-based program will use
+       Set the MESA_GLX_FX variable to "disable" your GLX-based program will use
        the X11 software driver (the 3Dfx hardware isn't used at all).
 
 
@@ -327,10 +558,17 @@ The Mesa/Voodoo Environment Variables:
                export MESA_FX_INFO=1
           you will get some useful statistic.
 
+        - If you define the env. var. MESA_FX_NO_SIGNALS:
+               export MESA_FX_NO_SIGNALS=1
+          Mesa/FX will not install atexit() or signal() handlers.
+
+
 
 Know BUGS and Problems:
 -----------------------
 
+       - fog doesn't work in the right way when using the glDepthRange() function;
+
        - Maximum texture size: 256x256 (this is an hardware limit);
 
        - Texture border aren't yet supported;
@@ -539,9 +777,7 @@ No because the Linux Glide doesn't (yet) support the Voodoo Rush.
 a binary copy of the Mesa in order to make the software
 working out of the box ?
 
-Yes, you have simply to include some informations about authors
-and where the library sources are available (check the LICENSE
-file for more informations about the GNU GPL).
+Yes.
 
 
 11. Which is the best make target for compiling the Mesa for
@@ -584,7 +820,7 @@ the Mesa mailing list and my driver WEB page
 (http://www-hmw.caribel.pisa.it/fxmesa/index.shtml)
 
 
-David Bucciarelli (humanware@plus.it)
+David Bucciarelli (davibu@tin.it)
 
 Humanware s.r.l. 
 Via XXIV Maggio 62