summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2001-01-17 02:49:38 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2001-01-17 02:49:38 +0000
commitc0bcd2ca99609fe8b6e992e2277ef8612d46fdfe (patch)
tree3aa0c90e1f864323e35e51679aa5d69bf07a3c97
parent547bbcabffffad1a630c261830998c511efc2b96 (diff)
Fixes for performance bug on compiled array element paths.
-rw-r--r--src/mesa/main/enums.c22
-rw-r--r--src/mesa/swrast_setup/ss_vb.c15
-rw-r--r--src/mesa/tnl/t_pipeline.c6
-rw-r--r--src/mesa/tnl/t_vb_cliptmp.h6
-rw-r--r--src/mesa/tnl/t_vb_lighttmp.h8
5 files changed, 32 insertions, 25 deletions
diff --git a/src/mesa/main/enums.c b/src/mesa/main/enums.c
index 67087536d4..5a4d871226 100644
--- a/src/mesa/main/enums.c
+++ b/src/mesa/main/enums.c
@@ -1,4 +1,4 @@
-/* $Id: enums.c,v 1.10 2001/01/06 22:46:13 gareth Exp $ */
+/* $Id: enums.c,v 1.11 2001/01/17 02:49:38 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -22,6 +22,9 @@
* BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Author:
+ * Keith Whitwell <keithw@valinux.com>
*/
@@ -910,20 +913,3 @@ const char *gl_lookup_enum_by_nr( int nr )
}
-#if 0
-int main()
-{
- int i;
- static const char *test[] = {
- "GL_POLYGON",
- "GL_TRUE",
- "GL_BANANA",
- "GL_REFLECTION_MAP_NV",
- };
-
- for (i = 0 ; i < Elements(test) ; i++) {
- int d = gl_lookup_enum_by_name( test[i] );
- printf("%s --> %d --> %s\n", test[i], d, gl_lookup_enum_by_nr( d ));
- }
-}
-#endif
diff --git a/src/mesa/swrast_setup/ss_vb.c b/src/mesa/swrast_setup/ss_vb.c
index f6720dc2f7..d2cfc6a4f9 100644
--- a/src/mesa/swrast_setup/ss_vb.c
+++ b/src/mesa/swrast_setup/ss_vb.c
@@ -242,6 +242,20 @@ _swsetup_vb_init( GLcontext *ctx )
setup_func[INDEX|TEX0|FOG|POINT] = rs_index_tex0_fog_point;
}
+static void printSetupFlags(char *msg, GLuint flags )
+{
+ fprintf(stderr, "%s(%x): %s%s%s%s%s%s%s\n",
+ msg,
+ (int)flags,
+ (flags & COLOR) ? "color, " : "",
+ (flags & INDEX) ? "index, " : "",
+ (flags & TEX0) ? "tex0, " : "",
+ (flags & MULTITEX) ? "multitex, " : "",
+ (flags & SPEC) ? "spec, " : "",
+ (flags & FOG) ? "fog, " : "",
+ (flags & POINT) ? "point, " : "");
+}
+
void
_swsetup_choose_rastersetup_func(GLcontext *ctx)
@@ -281,6 +295,7 @@ _swsetup_choose_rastersetup_func(GLcontext *ctx)
else
funcindex = 0;
+/* printSetupFlags("software setup func", funcindex); */
swsetup->BuildProjVerts = setup_func[funcindex];
ASSERT(setup_func[funcindex] != rs_invalid);
}
diff --git a/src/mesa/tnl/t_pipeline.c b/src/mesa/tnl/t_pipeline.c
index 11a17849b6..b2d4f15547 100644
--- a/src/mesa/tnl/t_pipeline.c
+++ b/src/mesa/tnl/t_pipeline.c
@@ -1,4 +1,4 @@
-/* $Id: t_pipeline.c,v 1.9 2001/01/14 06:14:21 keithw Exp $ */
+/* $Id: t_pipeline.c,v 1.10 2001/01/17 02:49:39 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -138,12 +138,12 @@ void _tnl_run_pipeline( GLcontext *ctx )
}
if (stage[i].active) {
- if (stage[i].changed_inputs)
+ if (stage[i].changed_inputs)
changed_inputs |= stage[i].outputs;
if (running) {
-/* fprintf(stderr, "run %s\n", stage[i].name); */
running = stage[i].run( ctx, &stage[i] );
+ stage[i].changed_inputs = 0;
}
}
}
diff --git a/src/mesa/tnl/t_vb_cliptmp.h b/src/mesa/tnl/t_vb_cliptmp.h
index 56f2031c90..35fe391b84 100644
--- a/src/mesa/tnl/t_vb_cliptmp.h
+++ b/src/mesa/tnl/t_vb_cliptmp.h
@@ -1,4 +1,4 @@
-/* $Id: t_vb_cliptmp.h,v 1.6 2001/01/13 05:48:26 keithw Exp $ */
+/* $Id: t_vb_cliptmp.h,v 1.7 2001/01/17 02:49:39 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -185,11 +185,11 @@ static void TAG(clip_line)( GLcontext *ctx,
}
}
- TAG(build_proj_verts)( ctx );
-
if ((ctx->_TriangleCaps & DD_FLATSHADE) && j != jj)
VB->copypvfunc( ctx, jj, j );
+ TAG(build_proj_verts)( ctx );
+
/* Render the new line.
*/
ctx->Driver.LineFunc( ctx, ii, jj );
diff --git a/src/mesa/tnl/t_vb_lighttmp.h b/src/mesa/tnl/t_vb_lighttmp.h
index 656fffff1a..575c568c06 100644
--- a/src/mesa/tnl/t_vb_lighttmp.h
+++ b/src/mesa/tnl/t_vb_lighttmp.h
@@ -1,4 +1,4 @@
-/* $Id: t_vb_lighttmp.h,v 1.2 2001/01/03 15:59:30 brianp Exp $ */
+/* $Id: t_vb_lighttmp.h,v 1.3 2001/01/17 02:49:39 keithw Exp $ */
/*
* Mesa 3-D graphics library
@@ -661,6 +661,9 @@ static void TAG(light_fast_rgba)( GLcontext *ctx,
if (IDX & LIGHT_TWOSIDE)
VB->ColorPtr[1] = &store->LitColor[1];
+ if (stage->changed_inputs == 0)
+ return;
+
if ( CHECK_COLOR_MATERIAL(j) )
gl_update_color_material( ctx, *CMcolor );
@@ -783,6 +786,9 @@ static void TAG(light_ci)( GLcontext *ctx,
if (IDX & LIGHT_TWOSIDE)
VB->IndexPtr[1] = &store->LitIndex[1];
+ if (stage->changed_inputs == 0)
+ return;
+
indexResult[0] = VB->IndexPtr[0]->data;
indexResult[1] = VB->IndexPtr[1]->data;