documentation updates
authorDaniel Borca <dborca@users.sourceforge.net>
Wed, 14 Apr 2004 08:00:52 +0000 (08:00 +0000)
committerDaniel Borca <dborca@users.sourceforge.net>
Wed, 14 Apr 2004 08:00:52 +0000 (08:00 +0000)
Glide3 driver: POINTCAST palette fixes

Makefile.DJ
Makefile.mgw
docs/README.3DFX
docs/README.MINGW32
src/mesa/drivers/glide/fxg.c
src/mesa/drivers/glide/fxg.h
src/mesa/drivers/glide/fxglidew.c

index 93983f9165e2355b974c6a15eb93f3f72ce11a75..8ad34be32e2fcb270da0846b4f94191d49f3048e 100644 (file)
@@ -20,7 +20,7 @@
 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-# DOS/DJGPP makefile v1.4 for Mesa
+# DOS/DJGPP makefile v1.5 for Mesa
 #
 #  Copyright (C) 2002 - Borca Daniel
 #  Email : dborca@users.sourceforge.net
 #                      As a consequence, you'll need the DJGPP Glide3
 #                      library to build any application.
 #                      default = no
-#      HAVE_X86=1      optimize for i386.
-#                      default = no
-#      HAVE_MMX=1      allow MMX specializations, provided your assembler
-#                      supports MMX instruction set. However, the true CPU
-#                      capabilities are checked at run-time to avoid crashes.
-#                      default = no
-#      HAVE_SSE=1      (see HAVE_MMX)
-#                      default = no
-#      HAVE_3DNOW=1    (see HAVE_MMX)
+#      X86=1           optimize for x86 (if possible, use MMX, SSE, 3DNow).
 #                      default = no
 #
 #    Targets:
index 77d6c97f75b3990944ccc9c83bc79d8c74b5d21a..2cd5d81cd383e55b08aec03fcac7f7e7b8f8b19d 100644 (file)
@@ -20,7 +20,7 @@
 # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-# MinGW makefile v1.0 for Mesa
+# MinGW makefile v1.1 for Mesa
 #
 #  Copyright (C) 2002 - Borca Daniel
 #  Email : dborca@users.sourceforge.net
 #                      As a consequence, you'll need the Win32 Glide3
 #                      library to build any application.
 #                      default = no
-#      HAVE_X86=1      optimize for i386.
-#                      default = no
-#      HAVE_MMX=1      allow MMX specializations, provided your assembler
-#                      supports MMX instruction set. However, the true CPU
-#                      capabilities are checked at run-time to avoid crashes.
-#                      default = no
-#      HAVE_SSE=1      (see HAVE_MMX)
-#                      default = no
-#      HAVE_3DNOW=1    (see HAVE_MMX)
+#      X86=1           optimize for x86 (if possible, use MMX, SSE, 3DNow).
 #                      default = no
 #
 #    Targets:
index 15888c30d93d0c1dfdf7cf9bb201064fcc3f3ab8..b419f83586b10ad52b3e0fb6571b8e46da7449ea 100644 (file)
@@ -74,7 +74,7 @@ Environment variables:
 ----------------------
 
 The following environment variables affect MesaFX. Those that affect Glide
-only, are beyond the scope of this file. Entries that don't have a "Value"
+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
 
@@ -89,7 +89,7 @@ default values. Use them only when you experience crashes or strange behavior.
 
 FX_GLIDE_NUM_TMU
        OS: all
-       HW: 2 TMU cards (Voodoo2, Avenger, Napalm)
+       HW: dual-TMU cards (some Voodoo1, Voodoo2, Avenger, Napalm)
        Desc: force single-TMU
        Note: (*)
        Value: "1"
@@ -137,6 +137,11 @@ MESA_FX_INFO
        HW: all
        Desc: verbose to stderr
        Value: any; special value "r" to redirect stderr to MESA.LOG
+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
@@ -153,8 +158,9 @@ MESA_FX_IGNORE_CMBEXT
        OS: all
        HW: Napalm
        Desc: disable Napalm combiners (color/alpha/texture)
-       Note: this means advanced (multi)texturing modes won't
-             work, but disabling this turns on REAL trilinear
+       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
index 44c55aa021c790733346a494f1dda99dfe9b6012..f337cae8203ff3dc0d20e3c53257a9251981f116 100644 (file)
@@ -1,53 +1,81 @@
-August 30, 1998 -- Paul Garceau\r
-Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)\r
-\r
-DISCLAIMER:  I make this port of the Mesa 3-D Graphics Library as a service\r
-to the general public.  I can, in no way support or make any guarantee that the\r
-build will work for your system.\r
-\r
-       The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.\r
-\r
-       Feel free to modify or change things as you see fit, just remember that\r
-I can't support any modifications you might want to make to the files which I\r
-have included OR the lgpl protected Mesa 3-D Graphics Library.\r
-\r
-       I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:\r
-\r
-               (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)\r
-\r
-       This build has been tested under WinNT4/SP6.  Win9x and WinNT5 remain untested by me.  I have not tested any of the demos included with Mesa3d.\r
-\r
-       I recommend using the GCC-2.95.2/Mingw32.\r
-\r
-       ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2\r
-\r
-       Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen\r
-and Colin Peters for making it possible for the Mingw32 toolchain to exist.  Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.\r
-\r
-Installing GCC-2.95.2/Mingw32 Build:\r
-\r
-       a) Open the file archive (either tar.gz or .zip extensions)\r
-\r
-       b) Decide the directory you want to move the archived files to.\r
-\r
-       d) Extract the files from the archive.\r
-       \r
-       e) Edit the mingw32.bat file to accomodate your choice of directory structure.\r
-\r
-               %mesaroot%:     This is your root directory (Mesa-3.3)\r
-               %mesasrc%:      This is the Mesa-3.3 src directory (Mesa-3.3\src)\r
-               %mesalib%:      This is where the build will put libGL.a and libGLU.a\r
-\r
-Running the Build:\r
-\r
-       Open your Command Prompt or MS-DOS prompt.\r
-       Go to your Mesa-3.3 'root' directory\r
-       At the command line type: mingw32\r
-\r
-       That's all there is to it.\r
-\r
-       Enjoy!\r
-\r
-       Peace,\r
-\r
+                            Mesa 6.1 for MinGW32
+                            ~~~~~~~~~~~~~~~~~~~~
+
+
+
+Quick & dirty start:
+--------------------
+
+       mingw32-make -f Makefile.mgw [OPTIONS...]
+
+   Look into the corresponding makefiles for further information.
+   Check README.3DFX to find out how to compile Mesa Glide3 driver
+   with MinGW32!
+
+
+
+Contact:
+--------
+
+Daniel Borca <dborca@users.sourceforge.net>
+
+
+
+WARNING! The info below this line is outdated (yet some of it useful). WARNING!
+*******************************************************************************
+
+
+
+August 30, 1998 -- Paul Garceau
+Updated January 13, 2000 -- Paul Garceau (pgarceau@teleport.com)
+
+DISCLAIMER:  I make this port of the Mesa 3-D Graphics Library as a service
+to the general public.  I can, in no way support or make any guarantee that the
+build will work for your system.
+
+       The associated packages and batch files I have included as part of the GCC-2.95.2/Mingw32 extension are provided "As-is" with out any guarantee of support or functionality from this author.
+
+       Feel free to modify or change things as you see fit, just remember that
+I can't support any modifications you might want to make to the files which I
+have included OR the lgpl protected Mesa 3-D Graphics Library.
+
+       I recommend using GCC-2.95.2/Mingw32 which is available at Mumit Khans' ftp site:
+
+               (ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/)
+
+       This build has been tested under WinNT4/SP6.  Win9x and WinNT5 remain untested by me.  I have not tested any of the demos included with Mesa3d.
+
+       I recommend using the GCC-2.95.2/Mingw32.
+
+       ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/mingw32/gcc-2.95.2
+
+       Much thanks to the combined efforts of Mumit Khan, Jan-Jaap Vanderhagen
+and Colin Peters for making it possible for the Mingw32 toolchain to exist.  Also, thanks go out to Stephane Rehel for the work that was completed on the Cygwin build.
+
+Installing GCC-2.95.2/Mingw32 Build:
+
+       a) Open the file archive (either tar.gz or .zip extensions)
+
+       b) Decide the directory you want to move the archived files to.
+
+       d) Extract the files from the archive.
+       
+       e) Edit the mingw32.bat file to accomodate your choice of directory structure.
+
+               %mesaroot%:     This is your root directory (Mesa-3.3)
+               %mesasrc%:      This is the Mesa-3.3 src directory (Mesa-3.3\src)
+               %mesalib%:      This is where the build will put libGL.a and libGLU.a
+
+Running the Build:
+
+       Open your Command Prompt or MS-DOS prompt.
+       Go to your Mesa-3.3 'root' directory
+       At the command line type: mingw32
+
+       That's all there is to it.
+
+       Enjoy!
+
+       Peace,
+
                Paul G. (pgarceau@teleport.com)
\ No newline at end of file
index b7408a70f989f2c0b171c540e52c02c526d86443..c06b8dec2fb618c3a814048be499466b991fb931 100644 (file)
@@ -2240,8 +2240,12 @@ void FX_CALL fake_grTexNCCTableExt (GrChipID_t   tmu,
 /****************************************************************************\
 * interface                                                                  *
 \****************************************************************************/
-void tdfx_hook_glide (struct tdfx_glide *Glide)
+void tdfx_hook_glide (struct tdfx_glide *Glide, int pointcast)
 {
+/* GET_EXT_ADDR: get function pointer
+ * GET_EXT_FAKE: get function pointer if possible, else use a fake function
+ * GET_EXT_NULL: get function pointer if possible, else leave NULL pointer
+ */
 #if FX_TRAP_GLIDE
 #define GET_EXT_ADDR(name) *(GrProc *)&real_##name = grGetProcAddress(#name), Glide->name = trap_##name
 #define GET_EXT_FAKE(name) GET_EXT_ADDR(name); if (real_##name == NULL) real_##name = fake_##name
@@ -2263,9 +2267,15 @@ void tdfx_hook_glide (struct tdfx_glide *Glide)
  GET_EXT_ADDR(grTexChromaModeExt);
  GET_EXT_ADDR(grTexChromaRangeExt);
  /* pointcast */
- GET_EXT_FAKE(grTexDownloadTableExt);
- GET_EXT_FAKE(grTexDownloadTablePartialExt);
- GET_EXT_FAKE(grTexNCCTableExt);
+ if (pointcast) {
+    GET_EXT_FAKE(grTexDownloadTableExt);
+    GET_EXT_FAKE(grTexDownloadTablePartialExt);
+    GET_EXT_FAKE(grTexNCCTableExt);
+ } else {
+    Glide->grTexDownloadTableExt = fake_grTexDownloadTableExt;
+    Glide->grTexDownloadTablePartialExt = fake_grTexDownloadTablePartialExt;
+    Glide->grTexNCCTableExt = fake_grTexNCCTableExt;
+ }
  /* tbext */
  GET_EXT_ADDR(grTextureBufferExt);
  GET_EXT_ADDR(grTextureAuxBufferExt);
index f282296715866a18784f37d292ccbd059f35e845..e71201116838cdb61d7af6337890db41986b5c3c 100644 (file)
@@ -377,6 +377,6 @@ struct tdfx_glide {
    void (FX_CALL *txPalToNcc) (GuNccTable *ncc_table, const FxU32 *pal);
 };
 
-void tdfx_hook_glide (struct tdfx_glide *Glide);
+void tdfx_hook_glide (struct tdfx_glide *Glide, int pointcast);
 
 #endif
index 6af9895f1ba6aa1dd7135337a8f3efb834ff9adf..67d816b627a325b45dfccdf92d907676c7dd06e7 100644 (file)
@@ -240,7 +240,7 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
 
    }
 
-   tdfx_hook_glide(&config->Glide);
+   tdfx_hook_glide(&config->Glide, getenv("MESA_FX_POINTCAST") != NULL);
 
    END_BOARD_LOCK();
    return 1;