OSDN Git Service

glide driver (wip)
authorDaniel Borca <dborca@users.sourceforge.net>
Mon, 13 Oct 2003 11:14:58 +0000 (11:14 +0000)
committerDaniel Borca <dborca@users.sourceforge.net>
Mon, 13 Oct 2003 11:14:58 +0000 (11:14 +0000)
Make-config
src/mesa/Makefile.X11
src/mesa/drivers/glide/fxapi.c
src/mesa/drivers/glide/fxdd.c
src/mesa/drivers/glide/fxddtex.c
src/mesa/drivers/glide/fxglidew.c
src/mesa/drivers/glide/fxglidew.h
src/mesa/drivers/glide/fxsetup.c
src/mesa/drivers/glide/fxwgl.c
src/mesa/drivers/x11/xm_api.c
src/mesa/drivers/x11/xmesaP.h

index c32a9d5..d80ec3d 100644 (file)
@@ -527,10 +527,10 @@ linux-glide:
        "CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include" \
        "CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE" \
        "GLUT_CFLAGS = -fexceptions" \
-       "GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide2x" \
+       "GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -L/usr/local/glide/lib -lglide3x" \
        "GLU_LIB_DEPS = -L$(TOP)/lib -lGL -lm" \
        "GLUT_LIB_DEPS = -L$(TOP)/lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
-       "APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -lglut -lGLU -lGL"
+       "APP_LIB_DEPS = -L/usr/local/glide/lib -lglide3x -lglut -lGLU -lGL"
 
 linux-x86-glide:
        $(MAKE) $(MFLAGS) -f Makefile.X11 targets \
@@ -544,7 +544,7 @@ linux-x86-glide:
        "CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DUSE_XSHM -DFX -DPTHREADS -I/usr/X11R6/include -I/usr/include/glide -I/usr/local/glide/include -I/usr/src/mesa-glx/src/FX/X86" \
        "CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -funroll-loops -fomit-frame-pointer -D_SVID_SOURCE -D_BSD_SOURCE" \
        "GLUT_CFLAGS = -fexceptions" \
-       "GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide2x -lm -lpthread" \
+       "GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -L/usr/local/glide/lib -lglide3x -lm -lpthread" \
        "GLU_LIB_DEPS = -L$(TOP)/lib -lGL -lm" \
        "GLUT_LIB_DEPS = -L$(TOP)/lib -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm" \
        "GLW_LIB_DEPS = -L$(TOP)/lib -lGL -L/usr/X11R6/lib -lXt -lX11" \
@@ -1090,5 +1090,5 @@ linux-glide-debug:
        "CFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -I/usr/X11R6/include -DUSE_XSHM -DPTHREADS -DFX -DDEBUG -I/usr/local/glide/include -I/usr/include/glide" \
        "CXXFLAGS = -g -ansi -pedantic -Wall -Wmissing-prototypes -fPIC -ffast-math -D_SVID_SOURCE -D_BSD_SOURCE -DDEBUG" \
        "GLUT_CFLAGS = -fexceptions" \
-       "APP_LIB_DEPS = -L/usr/local/glide/lib -lglide2x -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lvga -lm -lpthread"
+       "APP_LIB_DEPS = -L/usr/local/glide/lib -lglide3x -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lvga -lm -lpthread"
 
index 373608a..72e1499 100644 (file)
@@ -209,7 +209,8 @@ GLIDE_DRIVER_SOURCES =                      \
        drivers/glide/fxtexman.c        \
        drivers/glide/fxtris.c          \
        drivers/glide/fxvb.c            \
-       drivers/glide/fxglidew.c
+       drivers/glide/fxglidew.c        \
+       drivers/glide/fxg.c
 
 SVGA_DRIVER_SOURCES =                  \
        drivers/svga/svgamesa.c         \
index 28b9059..02b00a8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fxapi.c,v 1.39 2003/10/09 15:12:21 dborca Exp $ */
+/* $Id: fxapi.c,v 1.40 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -216,7 +216,7 @@ fxMesaCreateBestContext(GLuint win, GLint width, GLint height,
     return NULL;
  }
 
- return fxMesaCreateContext(win, res, GR_REFRESH_60Hz/*ZZZ: GR_REFRESH_75Hz*/, attribList);
+ return fxMesaCreateContext(win, res, GR_REFRESH_60Hz, attribList);
 }
 
 
@@ -233,7 +233,7 @@ fxMesaCreateContext(GLuint win,
 
  int i;
  const char *str;
- int numChips, sliaa, fsaa;
+ int sliaa, numSLI, samplesPerChip, tmuRam, fbRam;
  struct SstCard_St *voodoo;
  struct tdfx_glide *Glide;
 
@@ -245,16 +245,11 @@ fxMesaCreateContext(GLuint win,
  GrPixelFormat_t pixFmt;
    
  GLboolean useBGR;
- GLboolean verbose = GL_FALSE;
 
  if (TDFX_DEBUG & VERBOSE_DRIVER) {
     fprintf(stderr, "%s(...)\n", __FUNCTION__);
  }
 
- if (getenv("MESA_FX_INFO")) {
-    verbose = GL_TRUE;
- }
-
  /* Okay, first process the user flags */
  aux = GL_FALSE;
  doubleBuffer = GL_FALSE;
@@ -313,7 +308,6 @@ fxMesaCreateContext(GLuint win,
                                   and disables the splash screen due to y-origin swapping.
                                   Note: We only want the former. */
  voodoo = &glbHWConfig.SSTs[glbCurrentBoard];
- numChips = voodoo->numChips;
 
  fxMesa = (fxMesaContext)CALLOC_STRUCT(tfxMesaContext);
  if (!fxMesa) {
@@ -321,6 +315,10 @@ fxMesaCreateContext(GLuint win,
     goto errorhandler;
  }
 
+ if (getenv("MESA_FX_INFO")) {
+    fxMesa->verbose = GL_TRUE;
+ }
+
  fxMesa->type = voodoo->type;
  fxMesa->HavePixExt = voodoo->HavePixExt;
  fxMesa->HaveTexFmt = voodoo->HaveTexFmt;
@@ -329,41 +327,152 @@ fxMesaCreateContext(GLuint win,
  fxMesa->HaveTexus2 = voodoo->HaveTexus2;
  fxMesa->Glide = glbHWConfig.Glide;
  Glide = &fxMesa->Glide;
- sprintf(fxMesa->rendererString, "Mesa %s v0.51 %s %dMB FB, %dMB TM, %d TMU, %s",
-                           grGetString(GR_RENDERER),
-                           grGetString(GR_HARDWARE),
-                           voodoo->fbRam,
-                           (voodoo->tmuConfig[GR_TMU0].tmuRam + ((voodoo->nTexelfx > 1) ? voodoo->tmuConfig[GR_TMU1].tmuRam : 0)),
-                           voodoo->nTexelfx,
-                           (numChips > 1) ? "SLI" : "NOSLI");
 
- switch (fxMesa->colDepth = colDepth) {
-        case 15:
-             redBits = 5;
-             greenBits = 5;
-             blueBits = 5;
-             alphaBits = 1;
-             pixFmt = GR_PIXFMT_ARGB_1555;
-             break;
-        case 16:
-             redBits = 5;
-             greenBits = 6;
-             blueBits = 5;
-             alphaBits = depthSize ? 0 : 8;
-             pixFmt = GR_PIXFMT_RGB_565;
+ /*
+  * Pixel tables are used during pixel read-back
+  * Either initialize them for RGB or BGR order;
+  * However, 32bit capable cards have the right order.
+  * As a consequence, 32bit read-back is not swizzled!
+  * Also determine if we need vertex snapping.
+  */
+ /* number of SLI units and AA Samples per chip */
+ sliaa = 0;
+ switch (voodoo->type) {
+        case GR_SSTTYPE_VOODOO:
+        case GR_SSTTYPE_Banshee:
+             useBGR = GL_TRUE;
+             fxMesa->snapVertices = GL_TRUE;
              break;
-        case 32:
-             redBits = 8;
-             greenBits = 8;
-             blueBits = 8;
-             alphaBits = 8;
-             pixFmt = GR_PIXFMT_ARGB_8888;
+        case GR_SSTTYPE_Voodoo2:
+             useBGR = GL_TRUE;
+             fxMesa->snapVertices = GL_FALSE;
              break;
+        case GR_SSTTYPE_Voodoo4:
+        case GR_SSTTYPE_Voodoo5:
+             if ((str = Glide->grGetRegistryOrEnvironmentStringExt("SSTH3_SLI_AA_CONFIGURATION")) != NULL) {
+                sliaa = atoi(str);
+             }
+        case GR_SSTTYPE_Voodoo3:
         default:
-             str = "pixelFormat";
-             goto errorhandler;
+             useBGR = GL_FALSE;
+             fxMesa->snapVertices = GL_FALSE;
+             break;
+ }
+ /* ZZZ TO DO: Add the old SLI/AA settings for Napalm. */
+ switch(voodoo->numChips) {
+ case 4: /* 4 chips */
+   switch(sliaa) {
+   case 8: /* 8 Sample AA */
+     numSLI         = 1;
+     samplesPerChip = 2;
+     break;
+   case 7: /* 4 Sample AA */
+     numSLI         = 1;
+     samplesPerChip = 1;
+     break;
+   case 6: /* 2 Sample AA */
+     numSLI         = 2;
+     samplesPerChip = 1;
+     break;
+   default:
+     numSLI         = 4;
+     samplesPerChip = 1;
+   }
+   break;
+ case 2: /* 2 chips */
+   switch(sliaa) {
+   case 4: /* 4 Sample AA */
+     numSLI         = 1;
+     samplesPerChip = 2;
+     break;
+   case 3: /* 2 Sample AA */
+     numSLI         = 1;
+     samplesPerChip = 1;
+     break;
+   default:
+     numSLI         = 2;
+     samplesPerChip = 1;
+   }
+   break;
+ default: /* 1 chip */
+   switch(sliaa) {
+   case 1: /* 2 Sample AA */
+     numSLI         = 1;
+     samplesPerChip = 2;
+     break;
+   default:
+     numSLI         = 1;
+     samplesPerChip = 1;
+   }
+ }
+
+ fxMesa->fsaa = samplesPerChip * voodoo->numChips / numSLI; /* 1:noFSAA, 2:2xFSAA, 4:4xFSAA, 8:8xFSAA */
+
+ switch (fxMesa->colDepth = colDepth) {
+   case 15:
+     redBits   = 5;
+     greenBits = 5;
+     blueBits  = 5;
+     alphaBits = 1;
+     switch(fxMesa->fsaa) {
+       case 8:
+         pixFmt = GR_PIXFMT_AA_8_ARGB_1555;
+         break;
+       case 4:
+         pixFmt = GR_PIXFMT_AA_4_ARGB_1555;
+         break;
+       case 2:
+         pixFmt = GR_PIXFMT_AA_2_ARGB_1555;
+         break;
+       default:
+         pixFmt = GR_PIXFMT_ARGB_1555;
+     }
+     break;
+   case 16:
+     redBits   = 5;
+     greenBits = 6;
+     blueBits  = 5;
+     alphaBits = depthSize ? 0 : 8;
+     switch(fxMesa->fsaa) {
+       case 8:
+         pixFmt = GR_PIXFMT_AA_8_RGB_565;
+         break;
+       case 4:
+         pixFmt = GR_PIXFMT_AA_4_RGB_565;
+         break;
+       case 2:
+         pixFmt = GR_PIXFMT_AA_2_RGB_565;
+         break;
+       default:
+         pixFmt = GR_PIXFMT_RGB_565;
+     }
+     break;
+   case 32:
+     redBits   = 8;
+     greenBits = 8;
+     blueBits  = 8;
+     alphaBits = 8;
+     switch(fxMesa->fsaa) {
+       case 8:
+         pixFmt = GR_PIXFMT_AA_8_ARGB_8888;
+         break;
+       case 4:
+         pixFmt = GR_PIXFMT_AA_4_ARGB_8888;
+         break;
+       case 2:
+         pixFmt = GR_PIXFMT_AA_2_ARGB_8888;
+         break;
+       default:
+         pixFmt = GR_PIXFMT_ARGB_8888;
+     }
+     break;
+   default:
+     str = "pixelFormat";
+     goto errorhandler;
  }
 
+ /* ZZZ TODO: check if there is enough fbRam */
+
  /* Tips:
   * 1. we don't bother setting/checking AUX for stencil, because we'll decide
   *    later whether we have HW stencil, based on depth buffer (thus AUX is
@@ -391,7 +500,6 @@ fxMesaCreateContext(GLuint win,
  fxMesa->haveZBuffer = depthSize > 0;
  fxMesa->haveDoubleBuffer = doubleBuffer;
  fxMesa->haveGlobalPaletteTexture = GL_FALSE;
- fxMesa->verbose = verbose;
  fxMesa->board = glbCurrentBoard;
 
  fxMesa->haveTwoTMUs = (voodoo->nTexelfx > 1);
@@ -419,60 +527,6 @@ fxMesaCreateContext(GLuint win,
     fxMesa->swapInterval = 0;
  }
 
- if ((str = Glide->grGetRegistryOrEnvironmentStringExt("SSTH3_SLI_AA_CONFIGURATION"))) {
-    sliaa = atoi(str);
- } else {
-    sliaa = 0;
- }
- switch (colDepth) {
-        case 15:
-             if ((numChips == 4) && (sliaa == 8)) {
-                pixFmt = GR_PIXFMT_AA_8_ARGB_1555;
-                fsaa = 8;
-             } else if (((numChips == 4) && (sliaa == 7)) || ((numChips == 2) && (sliaa == 4))) {
-                pixFmt = GR_PIXFMT_AA_4_ARGB_1555;
-                fsaa = 4;
-             } else if (((numChips == 4) && (sliaa == 6)) || ((numChips == 2) && (sliaa == 3)) || ((numChips == 1) && (sliaa == 1))) {
-                pixFmt = GR_PIXFMT_AA_2_ARGB_1555;
-                fsaa = 2;
-             } else {
-                fsaa = 0;
-             }
-             break;
-        case 16:
-             if ((numChips == 4) && (sliaa == 8)) {
-                pixFmt = GR_PIXFMT_AA_8_RGB_565;
-                fsaa = 8;
-             } else if (((numChips == 4) && (sliaa == 7)) || ((numChips == 2) && (sliaa == 4))) {
-                pixFmt = GR_PIXFMT_AA_4_RGB_565;
-                fsaa = 4;
-             } else if (((numChips == 4) && (sliaa == 6)) || ((numChips == 2) && (sliaa == 3)) || ((numChips == 1) && (sliaa == 1))) {
-                pixFmt = GR_PIXFMT_AA_2_RGB_565;
-                fsaa = 2;
-             } else {
-                fsaa = 0;
-             }
-             break;
-        case 32:
-             if ((numChips == 4) && (sliaa == 8)) {
-                pixFmt = GR_PIXFMT_AA_8_ARGB_8888;
-                fsaa = 8;
-             } else if (((numChips == 4) && (sliaa == 7)) || ((numChips == 2) && (sliaa == 4))) {
-                pixFmt = GR_PIXFMT_AA_4_ARGB_8888;
-                fsaa = 4;
-             } else if (((numChips == 4) && (sliaa == 6)) || ((numChips == 2) && (sliaa == 3)) || ((numChips == 1) && (sliaa == 1))) {
-                pixFmt = GR_PIXFMT_AA_2_ARGB_8888;
-                fsaa = 2;
-             } else {
-                fsaa = 0;
-             }
-             break;
-        default: /* NOTREACHED */
-             str = "pixelFormat";
-             goto errorhandler;
- }
- fxMesa->fsaa = fsaa;
-
  BEGIN_BOARD_LOCK();
  if (fxMesa->HavePixExt) {
     fxMesa->glideContext = Glide->grSstWinOpenExt((FxU32)win, res, ref,
@@ -492,32 +546,27 @@ fxMesaCreateContext(GLuint win,
     goto errorhandler;
  }
 
-   /*
-    * Pixel tables are used during pixel read-back
-    * Either initialize them for RGB or BGR order;
-    * However, 32bit capable cards have the right order.
-    * As a consequence, 32bit read-back is not swizzled!
-    * Also determine if we need vertex snapping.
-    */
-   switch (voodoo->type) {
-          case GR_SSTTYPE_VOODOO:
-          case GR_SSTTYPE_Banshee:
-               useBGR = GL_TRUE;
-               fxMesa->snapVertices = GL_TRUE;
-               break;
-          case GR_SSTTYPE_Voodoo2:
-               useBGR = GL_TRUE;
-               fxMesa->snapVertices = GL_FALSE;
-               break;
-          case GR_SSTTYPE_Voodoo3:
-          case GR_SSTTYPE_Voodoo4:
-          case GR_SSTTYPE_Voodoo5:
-          default:
-               useBGR = GL_FALSE;
-               fxMesa->snapVertices = GL_FALSE;
-               break;
-   }
-
+  /* Not that it matters, but tmuRam and fbRam change after grSstWinOpen. */
+  tmuRam = voodoo->tmuConfig[GR_TMU0].tmuRam;
+  fbRam  = voodoo->fbRam;
+  BEGIN_BOARD_LOCK();
+  {
+    FxI32 result;
+    grGet(GR_MEMORY_TMU, 4, &result);
+    tmuRam = result / (1024 * 1024);
+    grGet(GR_MEMORY_FB, 4, &result);
+    fbRam = result / 1024;
+  }
+  END_BOARD_LOCK();
+
+  sprintf(fxMesa->rendererString, "Mesa %s v0.51 %s %dkB FB, %dMB TM, %d TMU, %s",
+                           grGetString(GR_RENDERER),
+                           grGetString(GR_HARDWARE),
+                           fbRam,
+                           tmuRam * voodoo->nTexelfx,
+                           voodoo->nTexelfx,
+                           (voodoo->numChips > 1) ? "SLI" : "NOSLI");
+  
    fxInitPixelTables(fxMesa, useBGR);
 
    /* screen */
@@ -534,7 +583,7 @@ fxMesaCreateContext(GLuint win,
    fxMesa->clipMinY = 0;
    fxMesa->clipMaxY = fxMesa->height;
 
-   if (verbose) {
+   if (fxMesa->verbose) {
       char buf[80];
 
       strcpy(buf, grGetString(GR_VERSION));
@@ -547,7 +596,7 @@ fxMesaCreateContext(GLuint win,
       fprintf(stderr, "Voodoo pixel order = %s, vertex snapping = %d\n",
                       useBGR ? "BGR" : "RGB",
                       fxMesa->snapVertices);
-      fprintf(stderr, "Voodoo screen: %dx%d.%d\n",
+      fprintf(stderr, "Voodoo screen: %dx%d:%d\n",
                      fxMesa->screen_width, fxMesa->screen_height, colDepth);
    }
 
index a810927..74fc496 100644 (file)
@@ -2,7 +2,7 @@
  * fxDDReadPixels888 does not convert 8A8R8G8B into 5R5G5B
  */
 
-/* $Id: fxdd.c,v 1.101 2003/10/09 15:12:21 dborca Exp $ */
+/* $Id: fxdd.c,v 1.102 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -1237,7 +1237,6 @@ fx_check_IsInHardware(GLcontext * ctx)
         return FX_FALLBACK_TEXTURE_1D_3D;
 
       if (ctx->Texture.Unit[0]._ReallyEnabled & TEXTURE_2D_BIT) {
-#if 0
         if (ctx->Texture.Unit[0].EnvMode == GL_BLEND &&
             (ctx->Texture.Unit[1]._ReallyEnabled & TEXTURE_2D_BIT ||
              ctx->Texture.Unit[0].EnvColor[0] != 0 ||
@@ -1246,16 +1245,13 @@ fx_check_IsInHardware(GLcontext * ctx)
              ctx->Texture.Unit[0].EnvColor[3] != 1)) {
            return FX_FALLBACK_TEXTURE_ENV;
         }
-#endif
         if (ctx->Texture.Unit[0]._Current->Image[0]->Border > 0)
            return FX_FALLBACK_TEXTURE_BORDER;
       }
 
       if (ctx->Texture.Unit[1]._ReallyEnabled & TEXTURE_2D_BIT) {
-#if 0
         if (ctx->Texture.Unit[1].EnvMode == GL_BLEND)
            return FX_FALLBACK_TEXTURE_ENV;
-#endif
         if (ctx->Texture.Unit[1]._Current->Image[0]->Border > 0)
            return FX_FALLBACK_TEXTURE_BORDER;
       }
@@ -1293,12 +1289,10 @@ fx_check_IsInHardware(GLcontext * ctx)
         return FX_FALLBACK_TEXTURE_MULTI;
       }
 
-#if 0
       if ((ctx->Texture.Unit[0]._ReallyEnabled & TEXTURE_2D_BIT) &&
          (ctx->Texture.Unit[0].EnvMode == GL_BLEND)) {
         return FX_FALLBACK_TEXTURE_ENV;
       }
-#endif
    }
 
    return 0;
index 3ae22b6..77c7ef3 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fxddtex.c,v 1.49 2003/10/09 15:12:21 dborca Exp $ */
+/* $Id: fxddtex.c,v 1.50 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -511,7 +511,6 @@ fxTexGetInfo(int w, int h, GrLOD_t * lodlevel, GrAspectRatio_t * ar,
             float *sscale, float *tscale,
             int *wscale, int *hscale)
 {
-   /* [koolsmoky] */
    static GrLOD_t lod[12] = {
           GR_LOD_LOG2_1,
           GR_LOD_LOG2_2,
@@ -983,10 +982,8 @@ fxGlideFormat(GLint mesaFormat)
       return GR_TEXFMT_ARGB_4444;
    case MESA_FORMAT_ARGB1555:
       return GR_TEXFMT_ARGB_1555;
-#if 1 /* [koolsmoky] getting ready for 32bpp textures */
    case MESA_FORMAT_ARGB8888:
       return GR_TEXFMT_ARGB_8888;
-#endif
 #if 0
    case MESA_FORMAT_RGB_DXT1:
    case MESA_FORMAT_RGBA_DXT1:
@@ -1027,10 +1024,8 @@ fxFetchFunction(GLint mesaFormat)
       return fetch_r4g4b4a4;
    case MESA_FORMAT_ARGB1555:
       return fetch_r5g5b5a1;
-#if 1 /* [koolsmoky] getting ready for 32bpp textures */
    case MESA_FORMAT_ARGB8888:
       return fetch_a8r8g8b8;
-#endif
 #if 0
    case MESA_FORMAT_RGB_DXT1:
    case MESA_FORMAT_RGBA_DXT1:
index 6e89f00..e20949e 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fxglidew.c,v 1.22 2003/10/02 17:36:44 brianp Exp $ */
+/* $Id: fxglidew.c,v 1.23 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -205,11 +205,11 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
       } else if (strstr(extension, "Voodoo5")) {
          config->SSTs[i].type = GR_SSTTYPE_Voodoo5;
       } else { /* Voodoo1,2,rush */
-         /* ZZZ TO DO */
+         /* ZZZ TO DO: Need to distinguish whether we have V1 or V2 or Rush. */
          config->SSTs[i].type = GR_SSTTYPE_VOODOO;
       }
 
-      grGet(GR_MEMORY_FB, 4, &result);
+      grGet(GR_MEMORY_FB, 4, &result); /* ZZZ: differs after grSstWinOpen */
       config->SSTs[i].fbRam = result / (1024 * 1024);
 
       grGet(GR_NUM_TMU, 4, &result);
@@ -219,7 +219,7 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
       config->SSTs[i].fbiRev = result;
 
       for (j = 0; j < config->SSTs[i].nTexelfx; j++) {
-        grGet(GR_MEMORY_TMU, 4, &result);
+        grGet(GR_MEMORY_TMU, 4, &result); /* ZZZ: differs after grSstWinOpen */
         config->SSTs[i].tmuConfig[j].tmuRam = result / (1024 * 1024);
         grGet(GR_REVISION_TMU, 4, &result);
         config->SSTs[i].tmuConfig[j].tmuRev = result;
@@ -232,12 +232,10 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
       config->SSTs[i].HaveMirExt = (strstr(extension, " TEXMIRROR ") != NULL);
       config->SSTs[i].HaveTexus2 = GL_FALSE;
 
-      /* need to get the number of SLI units for napalm */
+      /* number of Voodoo chips */
       grGet(GR_NUM_FB, 4, (void *) &numFB);
       config->SSTs[i].numChips = numFB;
-      /* this can only be useful for Voodoo2:
-       * sliDetect = ((config->SSTs[i].type == GR_SSTTYPE_Voodoo2) && (numFB > 1));
-       */
+
    }
 
    tdfx_hook_glide(&config->Glide);
index 324b5d9..fb354ff 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fxglidew.h,v 1.17 2003/10/09 15:12:21 dborca Exp $ */
+/* $Id: fxglidew.h,v 1.18 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -71,7 +71,7 @@ typedef struct {
                int fbRam;      /* 1, 2, or 4 MB */
                int fbiRev;     /* Rev of Pixelfx chip */
                int nTexelfx;   /* How many texelFX chips are there? */
-               int numChips;   /* Number of Voodoo chips [koolsmoky] */
+               int numChips;   /* Number of Voodoo chips */
                GrTMUConfig_t tmuConfig[GLIDE_NUM_TMU]; /* Configuration of the Texelfx chips */
                /* Glide3 extensions */
                FxBool HavePixExt;      /* PIXEXT */
index 2959fed..d9c42dd 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fxsetup.c,v 1.41 2003/10/09 15:12:21 dborca Exp $ */
+/* $Id: fxsetup.c,v 1.42 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -549,6 +549,12 @@ fxSetupTextureSingleTMU_NoLock(GLcontext * ctx, GLuint textureset)
       }
       break;
    case GL_BLEND:
+#if 1
+      if (TDFX_DEBUG & VERBOSE_DRIVER) {
+        fprintf(stderr, "%s: GL_BLEND not quite supported\n", __FUNCTION__);
+      }
+      return;
+#else
       /*
        * XXX we can't do real GL_BLEND mode.  These settings assume that
        * the TexEnv color is black and incoming fragment color is white.
@@ -584,10 +590,8 @@ fxSetupTextureSingleTMU_NoLock(GLcontext * ctx, GLuint textureset)
          colorComb.Invert = FXTRUE;
       }
       /* XXX return GL_FALSE for modes we don't support */
-      if (TDFX_DEBUG & VERBOSE_DRIVER) {
-        fprintf(stderr, "%s: GL_BLEND not quite supported\n", __FUNCTION__);
-      }
       break;
+#endif
    case GL_REPLACE:
       if ((ifmt == GL_RGB) || (ifmt == GL_LUMINANCE)) {
          alphaComb.Function = GR_COMBINE_FUNCTION_LOCAL;
index 1337585..f03def4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: fxwgl.c,v 1.18 2003/10/02 17:36:45 brianp Exp $ */
+/* $Id: fxwgl.c,v 1.19 2003/10/13 11:14:58 dborca Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -166,7 +166,7 @@ struct __pixelformat__ pix[] = {
      FXMESA_NONE}
    }
    ,
-#if 1
+#if 0
   /* 24bit RGB888 single buffer with depth */
    {
     {sizeof(PIXELFORMATDESCRIPTOR), 1,
index b6cb487..6ebda0c 100644 (file)
@@ -1775,7 +1775,7 @@ XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v, XMesaWindow w,
        int hw;
        if (v->mesa_visual.depthBits > 0) {
         attribs[numAttribs++] = FXMESA_DEPTH_SIZE;
-        attribs[numAttribs++] = 1;
+        attribs[numAttribs++] = v->mesa_visual.depthBits;
        }
        if (v->mesa_visual.doubleBufferMode) {
         attribs[numAttribs++] = FXMESA_DOUBLEBUFFER;
@@ -1790,16 +1790,16 @@ XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v, XMesaWindow w,
        }
        if (v->mesa_visual.alphaBits > 0) {
          attribs[numAttribs++] = FXMESA_ALPHA_SIZE;
-         attribs[numAttribs++] = 1;
+         attribs[numAttribs++] = v->mesa_visual.alphaBits;
        }
        if (1) {
-#define FXMESA_SHARE_CONTEXT 990099  /* keep in sync with fxapi.c! */
          attribs[numAttribs++] = FXMESA_SHARE_CONTEXT;
          attribs[numAttribs++] = (int) &(c->mesa);
        }
        attribs[numAttribs++] = FXMESA_NONE;
 
-       if ((hw = fxQueryHardware())==GR_SSTTYPE_VOODOO) {
+       /* [dBorca] need to revise this ASAP!!! */
+       /*if ((hw = fxQueryHardware())==GR_SSTTYPE_VOODOO) {
          b->FXctx = fxMesaCreateBestContext(0, b->width, b->height, attribs);
          if ((v->undithered_pf!=PF_Index) && (b->backimage)) {
           b->FXisHackUsable = b->FXctx ? GL_TRUE : GL_FALSE;
@@ -1809,7 +1809,7 @@ XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v, XMesaWindow w,
             b->FXwindowHack = GL_FALSE;
          }
        }
-       else {
+       else */{
          if (fxEnvVar[0]=='w' || fxEnvVar[0]=='W')
           b->FXctx = fxMesaCreateContext(w, GR_RESOLUTION_NONE,
                                          GR_REFRESH_75Hz, attribs);
index bb014a0..36a610a 100644 (file)
@@ -40,7 +40,7 @@
 #include "mtypes.h"
 #if defined(FX)
 #include "GL/fxmesa.h"
-#include "FX/fxdrv.h"
+#include "../glide/fxdrv.h"
 #endif