i965/fs: Stop trying to hack around MRF dep chains on gen7+ LIFO scheduling.
authorEric Anholt <eric@anholt.net>
Tue, 22 Oct 2013 19:38:14 +0000 (12:38 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 25 Oct 2013 23:45:30 +0000 (16:45 -0700)
This was a hack to avoid choosing to schedule all texturing before
consumption of any texture results due to the way dependency chains worked
out in the presence of MRFs.  On gen7, we don't have MRFs, so the problem
doesn't apply, and this was just badly constraining our scheduling.

total instructions in shared programs: 1615306 -> 1612534 (-0.17%)
instructions in affected programs:     9958 -> 7186 (-27.84%)
GAINED:                                259
LOST:                                  9

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp

index 99538bddb47a6cc7c648d6fdc492fc125a82cfdd..a1ecfde37434a6fe1359fbd26d69533196ea7d73 100644 (file)
@@ -969,7 +969,7 @@ fs_instruction_scheduler::choose_instruction_to_schedule()
          fs_inst *inst = (fs_inst *)n->inst;
 
          chosen = n;
-         if (inst->regs_written <= 1)
+         if (v->brw->gen >= 7 || inst->regs_written <= 1)
             break;
       }
    }