glide driver (wip)
This commit is contained in:
+4
-4
@@ -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"
|
||||
|
||||
|
||||
@@ -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 \
|
||||
|
||||
+171
-122
@@ -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");
|
||||
|
||||
/*
|
||||
* 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 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:
|
||||
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;
|
||||
pixFmt = GR_PIXFMT_ARGB_1555;
|
||||
break;
|
||||
case 16:
|
||||
redBits = 5;
|
||||
greenBits = 6;
|
||||
blueBits = 5;
|
||||
alphaBits = depthSize ? 0 : 8;
|
||||
pixFmt = GR_PIXFMT_RGB_565;
|
||||
break;
|
||||
case 32:
|
||||
redBits = 8;
|
||||
greenBits = 8;
|
||||
blueBits = 8;
|
||||
alphaBits = 8;
|
||||
pixFmt = GR_PIXFMT_ARGB_8888;
|
||||
break;
|
||||
default:
|
||||
str = "pixelFormat";
|
||||
goto errorhandler;
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#include "mtypes.h"
|
||||
#if defined(FX)
|
||||
#include "GL/fxmesa.h"
|
||||
#include "FX/fxdrv.h"
|
||||
#include "../glide/fxdrv.h"
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user