We don't handle swizzles and non-scalar backends don't split these
constants so we need to skip these too.

Fixes: 4218b6422cf1 ("nir: propagate known constant values into the if-then 
branch")

https://bugs.freedesktop.org/show_bug.cgi?id=110311
---
 src/compiler/nir/nir_opt_if.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_opt_if.c b/src/compiler/nir/nir_opt_if.c
index af63b90f249..d8fa6b04b39 100644
--- a/src/compiler/nir/nir_opt_if.c
+++ b/src/compiler/nir/nir_opt_if.c
@@ -1361,7 +1361,8 @@ opt_for_known_values(nir_builder *b, nir_if *nif)
         return false;
 
       /* TODO: remove this and support swizzles? */
-      if (unknown_val->num_components != 1)
+      if (unknown_val->num_components != 1 ||
+          load_const->def.num_components != 1)
         return false;
 
       /* Replace unknown ssa uses with the known constant */
-- 
2.20.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to