Fixes for performance bug on compiled array element paths.
authorKeith Whitwell <keith@tungstengraphics.com>
Wed, 17 Jan 2001 02:49:38 +0000 (02:49 +0000)
committerKeith Whitwell <keith@tungstengraphics.com>
Wed, 17 Jan 2001 02:49:38 +0000 (02:49 +0000)
src/mesa/main/enums.c
src/mesa/swrast_setup/ss_vb.c
src/mesa/tnl/t_pipeline.c
src/mesa/tnl/t_vb_cliptmp.h
src/mesa/tnl/t_vb_lighttmp.h

index 67087536d44a97c1d91ab078b4cf43ccfd5a567c..5a4d871226a144443ccb3f532551363f2081ea3e 100644 (file)
@@ -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
index f6720dc2f7e6f240e87cb0bbe7fed9952012c938..d2cfc6a4f983197c453d270efd1f9baf92737d28 100644 (file)
@@ -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);
 }
index 11a17849b6a973c933cb1c3c47100b0859da5d15..b2d4f15547216ae6830d28ae2cc93fe486c58bad 100644 (file)
@@ -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;
         }
       }
    }
index 56f2031c90e0c14a3a3769547f5b341c4158574b..35fe391b847ab93a0b0d545685af4a8522708e32 100644 (file)
@@ -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 );
index 656fffff1ad12c9f50002b3d8bb8476f5aca35d9..575c568c06f0898d81966f106fab3121a52c7c1c 100644 (file)
@@ -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;