i965: Fix reversed naming of the operations in compute-to-mrf optimization.
authorEric Anholt <eric@anholt.net>
Mon, 26 Jul 2010 20:01:45 +0000 (13:01 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 26 Jul 2010 20:08:25 +0000 (13:08 -0700)
Also fix up comments, so that the difference between the two passes is
clarified.

src/mesa/drivers/dri/i965/brw_eu.h
src/mesa/drivers/dri/i965/brw_optimize.c
src/mesa/drivers/dri/i965/brw_wm_emit.c

index bc151738f6febdd5abd922ae7792e4c548fbe47c..ffdddd0a38875fb00fb9db2b2817ad8491380777 100644 (file)
@@ -985,6 +985,6 @@ void brw_set_src1( struct brw_instruction *insn,
 /* brw_optimize.c */
 void brw_optimize(struct brw_compile *p);
 void brw_remove_duplicate_mrf_moves(struct brw_compile *p);
-void brw_remove_mrf_to_grf_moves(struct brw_compile *p);
+void brw_remove_grf_to_mrf_moves(struct brw_compile *p);
 
 #endif
index e9bb25c81a5aa2b82fa86dddad65c7053323ea3e..8aa6fb6cc6fb2534e2a3a97966829c22691cd696 100644 (file)
@@ -476,9 +476,11 @@ static void brw_remove_inst(struct brw_compile *p, const GLboolean *removeInst)
    p->nr_insn = nr_insn;
 }
 
-/* The gen code emitter generates a lot of duplications in the mrf-to-grf moves.
- * Here, we monitor same mov mrf-to-grf instrutions and remove them as soon as
- * none of the two operands have been written
+/* The gen code emitter generates a lot of duplications in the
+ * grf-to-mrf moves, for example when texture sampling with the same
+ * coordinates from multiple textures..  Here, we monitor same mov
+ * grf-to-mrf instrutions and remove repeated ones where the operands
+ * and dst ahven't changed in between.
  */
 void brw_remove_duplicate_mrf_moves(struct brw_compile *p)
 {
@@ -521,7 +523,10 @@ void brw_remove_duplicate_mrf_moves(struct brw_compile *p)
    free(removeInst);
 }
 
-void brw_remove_mrf_to_grf_moves(struct brw_compile *p)
+/* Replace moves to MRFs where the value moved is the result of a
+ * normal arithmetic operation with computation right into the MRF.
+ */
+void brw_remove_grf_to_mrf_moves(struct brw_compile *p)
 {
    int i, j, prev;
    struct brw_context *brw = p->brw;
index d29dbce2ed218fcbc2ba21bdcd37035e6511589d..d9fa2e63354bb7f47813c8fb5acf07b8205d93af 100644 (file)
@@ -1716,7 +1716,7 @@ void brw_wm_emit( struct brw_wm_compile *c )
    if (p->brw->intel.gen == 5) {
      brw_remove_duplicate_mrf_moves(p);
      if (c->dispatch_width == 16)
-       brw_remove_mrf_to_grf_moves(p);
+       brw_remove_grf_to_mrf_moves(p);
    }
 
    if (INTEL_DEBUG & DEBUG_WM) {