Module: Mesa Branch: master Commit: b9689c6bda8bbebccf8d070646406ab82913f8c0 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b9689c6bda8bbebccf8d070646406ab82913f8c0
Author: Matt Turner <[email protected]> Date: Mon Sep 8 12:06:49 2014 -0700 i965/fs: Ignore mov.sat instructions in interference check in sat prop. When an instruction's result was consumed by multiple mov.sat instructions, we would decide that we couldn't move the saturate modifier because something else was using the result, even though it was just another mov.sat! total instructions in shared programs: 4275598 -> 4274842 (-0.02%) instructions in affected programs: 75634 -> 74878 (-1.00%) Reviewed-by: Jason Ekstrand <[email protected]> --- src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp index 6f8f8d0..6f7fb6c 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_saturate_propagation.cpp @@ -67,7 +67,8 @@ opt_saturate_propagation_local(fs_visitor *v, bblock_t *block) break; } for (int i = 0; i < scan_inst->sources; i++) { - if (scan_inst->src[i].file == GRF && + if ((scan_inst->opcode != BRW_OPCODE_MOV || !scan_inst->saturate) && + scan_inst->src[i].file == GRF && scan_inst->src[i].reg == inst->src[0].reg && scan_inst->src[i].reg_offset == inst->src[0].reg_offset) { interfered = true; _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
