r600/sfn: lower bool to int32 only after common optimizations
Fixes: f79b7fcf7c7f5db626efdb63f27e8bc64d0aed77
r600/sfn: use 32 bit bools
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7714>
(cherry picked from commit 335c48ab330a5e3d7cc2bdd905eba44a3a80e982)
diff --git a/.pick_status.json b/.pick_status.json
index 1f6f869..4e8041c 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -310,7 +310,7 @@
"description": "r600/sfn: lower bool to int32 only after common optimizations",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": "f79b7fcf7c7f5db626efdb63f27e8bc64d0aed77"
},
diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.cpp b/src/gallium/drivers/r600/sfn/sfn_nir.cpp
index db7cf2f..4676c52 100644
--- a/src/gallium/drivers/r600/sfn/sfn_nir.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_nir.cpp
@@ -830,11 +830,10 @@
40,
r600_get_natural_size_align_bytes);
- NIR_PASS_V(sel->nir, nir_lower_bool_to_int32);
-
while (optimize_once(sel->nir, true));
auto sh = nir_shader_clone(sel->nir, sel->nir);
+ NIR_PASS_V(sel->nir, nir_lower_bool_to_int32);
NIR_PASS_V(sh, nir_opt_algebraic_late);
if (sel->nir->info.stage == MESA_SHADER_FRAGMENT)