docs: Update EGL doc.
[mesa.git] / docs / README.3DFX
index 4431516e7820f5ae3eadee0ca97b9beaf634340b..7feda6f33f73ad1463f8ca597b0ece7caf3db91e 100644 (file)
 
-                     3Dfx Glide device driver for Mesa 3.0
-                               (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,18 +249,14 @@ What do you need ?
          under Linux (more information in the "Useful Glide Environment
          Variables");
 
-       - Mesa 3.0;
-
        - 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.0 is not
+         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
          version of the driver;
 
        - 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
@@ -81,18 +309,18 @@ Linux:
          If your Glide libraries and headers are in a different directory
          you'll have to modify the Mesa-config and mklib.glide files.
 
-       - Unpack the MesaLib-3.0.tar.gz and MesaDemos-3.0.tar.gz archives;
+       - Unpack the MesaLib-3.1.tar.gz and MesaDemos-3.1.tar.gz archives;
 
        - If you're going to use a newer Mesa/Glide driver than v0.27 then
           unpack the new driver archive over the Mesa directory.
 
-       - In the Mesa-3.0 directory type "make linux-glide"
+       - In the Mesa-3.1 directory type "make linux-glide"
 
        - Compilation _should_ finish without errors;
 
        - Set your LD_LIBRARY_PATH environment variable so that the
          libglide2x.so and Mesa library files can be found.  For example:
-           setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.0/lib"
+           setenv LD_LIBRARY_PATH "/usr/local/glide/lib:/SOMEDIR/Mesa-3.1/lib"
 
        - You'll have to run Glide-based programs as root or set the suid
          bit on executables;
@@ -104,7 +332,7 @@ Linux:
            ./gears     (hit ESC to exit)
 
        - You can find the demos especially designed for the Voodoo driver in
-         in the Mesa-3.0/3Dfx/demos directory (type "make" in order to compile
+         in the Mesa-3.1/3Dfx/demos directory (type "make" in order to compile
          everything).
 
 MacOS:
@@ -121,13 +349,13 @@ MS Windows:
 
        - You must have the vcvars32.bat script in your PATH;
 
-       - Go to the directory Mesa-3.0 and run the mesafx.bat;
+       - Go to the directory Mesa-3.1 and run the mesafx.bat;
 
-       - The script will compile everything (Mesa-3.0/lib/OpenGL32.{lib,dll},
-         Mesa-3.0/lib/GLU32.{lib,dll}, Mesa-3.0/lib/GLUT32.{lib,dll} and
+       - The script will compile everything (Mesa-3.1/lib/OpenGL32.{lib,dll},
+         Mesa-3.1/lib/GLU32.{lib,dll}, Mesa-3.1/lib/GLUT32.{lib,dll} and
           Voodoo demos);
 
-       - At the end, you will be in the Mesa-3.0/3Dfx/demos directory;
+       - At the end, you will be in the Mesa-3.1/3Dfx/demos directory;
 
        - Try some demo (fire.exe, teapot.exe, etc.) in order to check if
          everything is OK (you can use Alt-Tab or Ctrl-F9 to switch between
@@ -140,7 +368,7 @@ MS Windows:
          to work with other kind of compilers;
 
        - To discover how open the 3Dfx screen, read the sources under
-         the Mesa-3.0/3Dfx/demos directory. You can use the GLUT library or
+         the Mesa-3.1/3Dfx/demos directory. You can use the GLUT library or
           the Diego Picciani's wgl emulator.
 
        NOTE: the MSVC++ 5.0 optimizer is really buggy. Also if you install the
@@ -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;
@@ -389,7 +627,7 @@ Hints and Special Features:
         - The Voodoo driver support multiple Voodoo Graphics boards in the
           some PC. Using this feature, you can write applications that use
           multiple monitors, videoprojectors or HMDs for the output. See
-         Mesa-3.0/3Dfx/demos/tunnel2.c for an example of how setup one
+         Mesa-3.1/3Dfx/demos/tunnel2.c for an example of how setup one
           context for each board.
 
        - The v0.19 introduces a new powerful texture memory manager: the
@@ -406,14 +644,14 @@ Hints and Special Features:
 
        - The Voodoo driver supports the GL_EXT_paletted_texture. it works
          only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value
-         is ignored because this is a limitation of the the current Glide
-         version and of the Voodoo hardware. See Mesa-3.0/3Dfx/demos/paltex.c for
+         is ignored because this is a limitation of the current Glide
+         version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for
          a demo of this extension.
 
        - The Voodoo driver directly supports 3Dfx Global Palette extension.
          It was written for GLQuake and I think that it isn't a good idea
          to use this extension for any other purpose (it is a trick). See
-         Mesa-3.0/3Dfx/demos/glbpaltex.c for a demo of this extension.
+         Mesa-3.1/3Dfx/demos/glbpaltex.c for a demo of this extension.
 
        - The Voodoo driver chooses the screen resolution according to the
          requested window size. If you open a 640x480 window, you will get
@@ -484,12 +722,12 @@ version of GLQuake with works with the Mesa/3Dfx/Glide combo.
 Here's what you need to run GLQuake on Linux:
    PC with 100MHz Pentium or better
    a 3Dfx-based card
-   Mesa 3.0 libraries:  libMesaGL.so  libMesaGLU.so
+   Mesa 3.1 libraries:  libMesaGL.so  libMesaGLU.so
    Glide 2.4 libraries:  libglide2x.so  libtexus.so
    GLQuake for Linux.
 
 Also, the windows version of GLQuake works fine with the Mesa OpenGL32.dll,
-you have only to copy the Mesa-3.0/lib/OpenGL32.dll in the GLQuake directory
+you have only to copy the Mesa-3.1/lib/OpenGL32.dll in the GLQuake directory
 in order to test 'MesaQuake'.
 
 
@@ -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 (tech.hmw@plus.it)
+David Bucciarelli (davibu@tin.it)
 
 Humanware s.r.l. 
 Via XXIV Maggio 62