summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2019-03-11 19:00:21 -0700
committerDylan Baker <dylan@pnwbakers.com>2019-03-13 14:26:36 -0700
commitf2e5ca1d81c865bac1f4de502957ca801207b669 (patch)
tree3112c9abc8774de817a0db14beeb48ad3c046162
parentf953d0f52f0d3463e1b1810b02ab53a19545968b (diff)
intel/fs: Fix opt_peephole_csel to not throw away saturates.
We were not copying the saturate bit from the original instruction to the new replacement instruction. This caused major misrendering in DiRT Rally on iris, where comparisons leading to discards failed due to the missing saturate, causing lots of extra garbage pixels to be drawn in text rendering, trees, and so on. This did not show up on i965 because st/nir performs a more aggressive version of nir_opt_peephole_select, yielding more b32csel operations. Fixes: 52c7df1643e i965/fs: Merge CMP and SEL into CSEL on Gen8+ Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (cherry picked from commit 3570d15b6d88bdcd353b31ffe5460d04a88b7b6f)
-rw-r--r--src/intel/compiler/brw_fs.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index e1c9722cf96..4a14a3eb6e1 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -3117,6 +3117,7 @@ fs_visitor::opt_peephole_csel()
if (csel_inst != NULL) {
progress = true;
+ csel_inst->saturate = inst->saturate;
inst->remove(block);
}