summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2001-05-10 02:59:04 +0000
committerBrian Paul <[email protected]>2001-05-10 02:59:04 +0000
commitf50bbbf8556483a8def9862c0d05382e43177eb0 (patch)
tree3c00a19baa4830d94c809a91d3f900d7703df823
parent8acb7e9ea211423e196dac4dfde312ffeb78619a (diff)
check hardware type and use SETUP_SNAP if needed
-rw-r--r--src/mesa/drivers/glide/fxapi.c26
-rw-r--r--src/mesa/drivers/glide/fxdrv.h2
-rw-r--r--src/mesa/drivers/glide/fxvb.c6
3 files changed, 21 insertions, 13 deletions
diff --git a/src/mesa/drivers/glide/fxapi.c b/src/mesa/drivers/glide/fxapi.c
index 72f2a4538b7..4150652099f 100644
--- a/src/mesa/drivers/glide/fxapi.c
+++ b/src/mesa/drivers/glide/fxapi.c
@@ -400,9 +400,13 @@ fxMesaCreateContext(GLuint win,
}
/*
- * Pixel tables are use during pixel read-back
+ * Pixel tables are used during pixel read-back
* Either initialize them for RGB or BGR order.
+ * Also determine if we need vertex snapping.
*/
+
+ fxMesa->snapVertices = GL_TRUE; /* play it safe */
+
#ifdef FXMESA_USE_ARGB
useBGR = GL_FALSE; /* Force RGB pixel order */
system = "FXMESA_USE_ARGB";
@@ -432,6 +436,7 @@ fxMesaCreateContext(GLuint win,
/* Voodoo 2 */
useBGR = GL_TRUE;
system = "Voodoo2";
+ fxMesa->snapVertices = GL_FALSE;
}
else if (voodoo->nTexelfx == 2 &&
voodoo->fbiRev == 2 &&
@@ -457,22 +462,27 @@ fxMesaCreateContext(GLuint win,
/* Presumed Voodoo3 */
useBGR = GL_FALSE;
system = "Voodoo3";
+ fxMesa->snapVertices = GL_FALSE;
}
- if (getenv("MESA_FX_INFO")) {
- printf
- ("Voodoo: Texelfx: %d / FBI Rev.: %d / TMU Rev.: %d / TMU RAM: %d\n",
- voodoo->nTexelfx, voodoo->fbiRev, voodoo->tmuConfig[0].tmuRev,
- voodoo->tmuConfig[0].tmuRam);
+ if (verbose) {
+ fprintf(stderr,
+ "Voodoo: Texelfx: %d / FBI Rev.: %d / TMU Rev.: %d / TMU RAM: %d\n",
+ voodoo->nTexelfx, voodoo->fbiRev, voodoo->tmuConfig[0].tmuRev,
+ voodoo->tmuConfig[0].tmuRam);
}
}
else {
useBGR = GL_FALSE; /* use RGB pixel order otherwise */
system = "non-voodoo";
+ fxMesa->snapVertices = GL_FALSE;
}
#endif /*FXMESA_USE_ARGB */
- if (getenv("MESA_FX_INFO"))
- printf("Voodoo pixel order: %s (%s)\n", useBGR ? "BGR" : "RGB", system);
+ if (verbose) {
+ fprintf(stderr, "Voodoo pixel order: %s (%s)\n",
+ useBGR ? "BGR" : "RGB", system);
+ fprintf(stderr, "Vertex snapping: %d\n", fxMesa->snapVertices);
+ }
fxInitPixelTables(fxMesa, useBGR);
diff --git a/src/mesa/drivers/glide/fxdrv.h b/src/mesa/drivers/glide/fxdrv.h
index 0a9944ea88a..0d4c7a45bd2 100644
--- a/src/mesa/drivers/glide/fxdrv.h
+++ b/src/mesa/drivers/glide/fxdrv.h
@@ -439,7 +439,7 @@ struct tfxMesaContext
GLuint setup_gone; /* for multipass */
GLuint stw_hint_state; /* for grHints */
fxVertex *verts;
-
+ GLboolean snapVertices; /* needed for older Voodoo hardware */
/* Rasterization:
*/
diff --git a/src/mesa/drivers/glide/fxvb.c b/src/mesa/drivers/glide/fxvb.c
index 90fe9f2724b..e38d3c3cdd5 100644
--- a/src/mesa/drivers/glide/fxvb.c
+++ b/src/mesa/drivers/glide/fxvb.c
@@ -298,10 +298,8 @@ fx_validate_BuildProjVerts(GLcontext * ctx, GLuint start, GLuint count,
else {
GLuint setupindex = SETUP_XYZW;
-#if 0
- if (is_voodoo_graphics)
- setupindex |= SETUP_SNAP;
-#endif
+ if (fxMesa->snapVertices)
+ setupindex |= SETUP_SNAP;
fxMesa->tmu_source[0] = 0;
fxMesa->tmu_source[1] = 1;