summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2013-03-19 17:36:10 -0700
committerEric Anholt <[email protected]>2013-04-01 16:17:26 -0700
commitce316f62efa208b1a43fe81831126fc75c5807c5 (patch)
tree7bbc55fa891cbfea2166a433808837f1cb5fd823
parent3cf69b228404791cf15231321b6a18b5701be0a6 (diff)
i965/fs: Don't double-emit SEND dependency workarounds at control flow.
We weren't setting needs_dep[i] in the loops, so we'd continue on to potentially add the same workaround MOVs to the later basic block boundaries, too. We can either set needs_dep[i] to exit through the normal path, or we can just return since we know we're done. Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 84e88b1aa91..cc8882bc22e 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2341,6 +2341,7 @@ fs_visitor::insert_gen4_pre_send_dependency_workarounds(fs_inst *inst)
inst->insert_before(DEP_RESOLVE_MOV(first_write_grf + i));
}
}
+ return;
}
bool scan_inst_16wide = (dispatch_width > 8 &&
@@ -2410,6 +2411,7 @@ fs_visitor::insert_gen4_post_send_dependency_workarounds(fs_inst *inst)
if (needs_dep[i])
scan_inst->insert_before(DEP_RESOLVE_MOV(first_write_grf + i));
}
+ return;
}
/* Clear the flag for registers that actually got read (as expected). */