1 |
From f2e5ca1d81c865bac1f4de502957ca801207b669 Mon Sep 17 00:00:00 2001 |
2 |
From: Kenneth Graunke <kenneth@whitecape.org> |
3 |
Date: Mon, 11 Mar 2019 19:00:21 -0700 |
4 |
Subject: [PATCH 04/22] intel/fs: Fix opt_peephole_csel to not throw away |
5 |
saturates. |
6 |
|
7 |
We were not copying the saturate bit from the original instruction |
8 |
to the new replacement instruction. This caused major misrendering |
9 |
in DiRT Rally on iris, where comparisons leading to discards failed |
10 |
due to the missing saturate, causing lots of extra garbage pixels to |
11 |
be drawn in text rendering, trees, and so on. |
12 |
|
13 |
This did not show up on i965 because st/nir performs a more aggressive |
14 |
version of nir_opt_peephole_select, yielding more b32csel operations. |
15 |
|
16 |
Fixes: 52c7df1643e i965/fs: Merge CMP and SEL into CSEL on Gen8+ |
17 |
|
18 |
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> |
19 |
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> |
20 |
(cherry picked from commit 3570d15b6d88bdcd353b31ffe5460d04a88b7b6f) |
21 |
--- |
22 |
src/intel/compiler/brw_fs.cpp | 1 + |
23 |
1 file changed, 1 insertion(+) |
24 |
|
25 |
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp |
26 |
index e1c9722cf96..4a14a3eb6e1 100644 |
27 |
--- a/src/intel/compiler/brw_fs.cpp |
28 |
+++ b/src/intel/compiler/brw_fs.cpp |
29 |
@@ -3117,6 +3117,7 @@ fs_visitor::opt_peephole_csel() |
30 |
|
31 |
if (csel_inst != NULL) { |
32 |
progress = true; |
33 |
+ csel_inst->saturate = inst->saturate; |
34 |
inst->remove(block); |
35 |
} |
36 |
|
37 |
-- |
38 |
2.21.0 |
39 |
|