From ce316f62efa208b1a43fe81831126fc75c5807c5 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 19 Mar 2013 17:36:10 -0700 Subject: [PATCH] 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 --- src/mesa/drivers/dri/i965/brw_fs.cpp | 2 ++ 1 file changed, 2 insertions(+) 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). */ -- 2.30.2