Voodoo Rush fixes

This commit is contained in:
Daniel Borca 2004-03-08 07:52:18 +00:00
parent 446d8d0b86
commit 0c19008f09
3 changed files with 17 additions and 5 deletions

View file

@ -397,6 +397,7 @@ fxMesaCreateContext(GLuint win,
sliaa = 0;
switch (voodoo->type) {
case GR_SSTTYPE_VOODOO:
case GR_SSTTYPE_SST96:
case GR_SSTTYPE_Banshee:
fxMesa->bgrOrder = GL_TRUE;
fxMesa->snapVertices = GL_TRUE;

View file

@ -1331,8 +1331,18 @@ fxDDInitFxMesaContext(fxMesaContext fxMesa)
return 0;
}
if (fxMesa->haveZBuffer)
grDepthBufferMode(GR_DEPTHBUFFER_ZBUFFER);
/* [dBorca] Hack alert:
* Unlike the rest of the Voodoo family, the Rush
* doesn't support ZBUFFER with WBUFFER-like depth functions!
* I guess we could use WBUFFER, which is better, but we can't
* because the depth span functions would need to translate
* depth values to 4.12 floating point...
*/
if (fxMesa->haveZBuffer) {
grDepthBufferMode((fxMesa->type == GR_SSTTYPE_SST96)
? GR_DEPTHBUFFER_WBUFFER
: GR_DEPTHBUFFER_ZBUFFER);
}
if (!fxMesa->bgrOrder) {
grLfbWriteColorFormat(GR_COLORFORMAT_ABGR);

View file

@ -194,7 +194,9 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
grSstSelect(i);
extension = grGetString(GR_HARDWARE);
if (strstr(extension, "Voodoo2")) {
if (strstr(extension, "Rush")) {
config->SSTs[i].type = GR_SSTTYPE_SST96;
} else if (strstr(extension, "Voodoo2")) {
config->SSTs[i].type = GR_SSTTYPE_Voodoo2;
} else if (strstr(extension, "Voodoo Banshee")) {
config->SSTs[i].type = GR_SSTTYPE_Banshee;
@ -204,8 +206,7 @@ FX_grSstQueryHardware(GrHwConfiguration * config)
config->SSTs[i].type = GR_SSTTYPE_Voodoo4;
} else if (strstr(extension, "Voodoo5")) {
config->SSTs[i].type = GR_SSTTYPE_Voodoo5;
} else { /* Voodoo1,rush */
/* ZZZ TO DO: Need to distinguish whether we have V1 or Rush. */
} else {
config->SSTs[i].type = GR_SSTTYPE_VOODOO;
}