X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=docs%2FREADME.3DFX;h=037e8fa7cc6c3a32977cfc2ec026679fc35a4eac;hb=4ad80ad5cfdb9bc23eee15938645a334d227cd72;hp=4431516e7820f5ae3eadee0ca97b9beaf634340b;hpb=f9eae7b63b8459784f3776c9ace3c54fff49e492;p=mesa.git diff --git a/docs/README.3DFX b/docs/README.3DFX index 4431516e782..037e8fa7cc6 100644 --- a/docs/README.3DFX +++ b/docs/README.3DFX @@ -1,10 +1,242 @@ - 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 +Hiroshi Morii + + + +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 @@ -407,13 +645,13 @@ 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 + 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