i965: Remove artificial dependency between math instructions.
authorMatt Turner <mattst88@gmail.com>
Mon, 7 Jul 2014 04:31:28 +0000 (21:31 -0700)
committerMatt Turner <mattst88@gmail.com>
Tue, 8 Jul 2014 18:12:02 +0000 (11:12 -0700)
... on Gen6+. I'm not actually sure which class Gen6 fits into.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp

index 10a8f6d5f6238bd765c839f38ccbae07863be9a4..04ac24213426f7f9a001c827b4b22aad34224fbd 100644 (file)
@@ -1356,6 +1356,7 @@ vec4_instruction_scheduler::issue_time(backend_instruction *inst)
 void
 instruction_scheduler::schedule_instructions(backend_instruction *next_block_header)
 {
+   struct brw_context *brw = bv->brw;
    time = 0;
 
    /* Remove non-DAG heads from the list. */
@@ -1424,7 +1425,7 @@ instruction_scheduler::schedule_instructions(backend_instruction *next_block_hea
        * the next math instruction isn't going to make progress until the first
        * is done.
        */
-      if (chosen->inst->is_math()) {
+      if (brw->gen < 6 && chosen->inst->is_math()) {
          foreach_in_list(schedule_node, n, &instructions) {
            if (n->inst->is_math())
               n->unblocked_time = MAX2(n->unblocked_time,