diff options
author | Eric Anholt <[email protected]> | 2012-11-09 11:48:20 -0800 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2012-12-04 16:58:46 -0800 |
commit | f22a909a080d603db122ac8517a80bd8f4006fe2 (patch) | |
tree | f9bfb16691e52559e186a1d3fe6b58113f7d7a6e /src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | |
parent | 9156d0cba1090c4bcc3a6c0c7b2ad8921a295be4 (diff) |
i965/fs: Restrict optimization that would fail for gen7's SENDs from GRFs
v2: Fix SNB math bug in register_coalesce() where I was looking at the
instruction to be removed, not the instruction to be copy propagated
into.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp index d296e48c038..c9c90284eac 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp @@ -216,9 +216,8 @@ fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry) bool has_source_modifiers = entry->src.abs || entry->src.negate; - if (intel->gen == 6 && inst->is_math() && - (has_source_modifiers || entry->src.file == UNIFORM || - entry->src.smear != -1)) + if ((has_source_modifiers || entry->src.file == UNIFORM || + entry->src.smear != -1) && !can_do_source_mods(inst)) return false; inst->src[arg].file = entry->src.file; |