[Mesa-dev] [PATCH] intel/compiler: fix lower conversions to account for predication

Iago Toral Quiroga itoral at igalia.com
Tue Jul 17 09:10:34 UTC 2018


The pass can create a temporary result for the instruction and then
moves from it to the original destination, however, if the original
instruction was predicated, the mov has to be predicated as well.
---
 src/intel/compiler/brw_fs_lower_conversions.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs_lower_conversions.cpp b/src/intel/compiler/brw_fs_lower_conversions.cpp
index e27e2402746..145fb55f995 100644
--- a/src/intel/compiler/brw_fs_lower_conversions.cpp
+++ b/src/intel/compiler/brw_fs_lower_conversions.cpp
@@ -98,7 +98,10 @@ fs_visitor::lower_conversions()
              * size_written accordingly.
              */
             inst->size_written = inst->dst.component_size(inst->exec_size);
-            ibld.at(block, inst->next).MOV(dst, strided_temp)->saturate = saturate;
+
+            fs_inst *mov = ibld.at(block, inst->next).MOV(dst, strided_temp);
+            mov->saturate = saturate;
+            mov->predicate = inst->predicate;
 
             progress = true;
          }
-- 
2.17.1



More information about the mesa-dev mailing list