[Mesa-dev] [PATCH 11/13] i965/fs: Don't double-emit SEND dependency workarounds at control flow.
Eric Anholt
eric at anholt.net
Wed Mar 20 17:37:00 PDT 2013
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.
---
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 c128175..5d83e50 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2346,6 +2346,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 &&
@@ -2415,6 +2416,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). */
--
1.7.10.4
More information about the mesa-dev
mailing list