From fd83bc2b33f34195f05300eee6ebfe18570177a0 Mon Sep 17 00:00:00 2001 From: Daniel Borca Date: Mon, 13 Oct 2003 11:14:58 +0000 Subject: [PATCH] glide driver (wip) --- Make-config | 8 +- src/mesa/Makefile.X11 | 3 +- src/mesa/drivers/glide/fxapi.c | 291 +++++++++++++++++------------- src/mesa/drivers/glide/fxdd.c | 8 +- src/mesa/drivers/glide/fxddtex.c | 7 +- src/mesa/drivers/glide/fxglidew.c | 14 +- src/mesa/drivers/glide/fxglidew.h | 4 +- src/mesa/drivers/glide/fxsetup.c | 12 +- src/mesa/drivers/glide/fxwgl.c | 4 +- src/mesa/drivers/x11/xm_api.c | 10 +- src/mesa/drivers/x11/xmesaP.h | 2 +- 11 files changed, 202 insertions(+), 161 deletions(-) diff --git a/Make-config b/Make-config index c32a9d5e95b..d80ec3d08dd 100644 --- a/Make-config +++ b/Make-config @@ -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" diff --git a/src/mesa/Makefile.X11 b/src/mesa/Makefile.X11 index 373608a325d..72e1499392a 100644 --- a/src/mesa/Makefile.X11 +++ b/src/mesa/Makefile.X11 @@ -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 \ diff --git a/src/mesa/drivers/glide/fxapi.c b/src/mesa/drivers/glide/fxapi.c index 28b9059c195..02b00a84c9c 100644 --- a/src/mesa/drivers/glide/fxapi.c +++ b/src/mesa/drivers/glide/fxapi.c @@ -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); } diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c index a8109273db7..74fc496485d 100644 --- a/src/mesa/drivers/glide/fxdd.c +++ b/src/mesa/drivers/glide/fxdd.c @@ -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; diff --git a/src/mesa/drivers/glide/fxddtex.c b/src/mesa/drivers/glide/fxddtex.c index 3ae22b6070b..77c7ef3c9e9 100644 --- a/src/mesa/drivers/glide/fxddtex.c +++ b/src/mesa/drivers/glide/fxddtex.c @@ -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: diff --git a/src/mesa/drivers/glide/fxglidew.c b/src/mesa/drivers/glide/fxglidew.c index 6e89f00ed83..e20949e062e 100644 --- a/src/mesa/drivers/glide/fxglidew.c +++ b/src/mesa/drivers/glide/fxglidew.c @@ -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); diff --git a/src/mesa/drivers/glide/fxglidew.h b/src/mesa/drivers/glide/fxglidew.h index 324b5d99f0f..fb354ffd6f9 100644 --- a/src/mesa/drivers/glide/fxglidew.h +++ b/src/mesa/drivers/glide/fxglidew.h @@ -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 */ diff --git a/src/mesa/drivers/glide/fxsetup.c b/src/mesa/drivers/glide/fxsetup.c index 2959fede15a..d9c42dd088f 100644 --- a/src/mesa/drivers/glide/fxsetup.c +++ b/src/mesa/drivers/glide/fxsetup.c @@ -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; diff --git a/src/mesa/drivers/glide/fxwgl.c b/src/mesa/drivers/glide/fxwgl.c index 1337585aec8..f03def49968 100644 --- a/src/mesa/drivers/glide/fxwgl.c +++ b/src/mesa/drivers/glide/fxwgl.c @@ -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, diff --git a/src/mesa/drivers/x11/xm_api.c b/src/mesa/drivers/x11/xm_api.c index b6cb487c2e1..6ebda0c14f8 100644 --- a/src/mesa/drivers/x11/xm_api.c +++ b/src/mesa/drivers/x11/xm_api.c @@ -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); diff --git a/src/mesa/drivers/x11/xmesaP.h b/src/mesa/drivers/x11/xmesaP.h index bb014a0df39..36a610a4f98 100644 --- a/src/mesa/drivers/x11/xmesaP.h +++ b/src/mesa/drivers/x11/xmesaP.h @@ -40,7 +40,7 @@ #include "mtypes.h" #if defined(FX) #include "GL/fxmesa.h" -#include "FX/fxdrv.h" +#include "../glide/fxdrv.h" #endif -- 2.30.2