From 576341324d056fab8c548acea0689f53591e312d Mon Sep 17 00:00:00 2001 From: Vasily Khoruzhick Date: Tue, 3 Sep 2019 22:55:48 -0700 Subject: [PATCH] lima: run opt_algebraic between int_to_float and boot_to_float for vs int_to_float emits ftrunc and ftrunc lowering generates bool ops. Reviewed-by: Connor Abbott Reviewed-by: Erico Nunes Reviewed-by: Andreas Baierl Signed-off-by: Vasily Khoruzhick --- src/gallium/drivers/lima/lima_program.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/gallium/drivers/lima/lima_program.c b/src/gallium/drivers/lima/lima_program.c index f92c64a300d..e3863feb80e 100644 --- a/src/gallium/drivers/lima/lima_program.c +++ b/src/gallium/drivers/lima/lima_program.c @@ -129,15 +129,16 @@ lima_program_optimize_vs_nir(struct nir_shader *s) } while (progress); NIR_PASS_V(s, nir_lower_int_to_float); - NIR_PASS_V(s, nir_lower_bool_to_float); - - /* Some ops must be lowered after being converted from int ops, - * so re-run nir_opt_algebraic after int lowering. */ + /* Run opt_algebraic between int_to_float and bool_to_float because + * int_to_float emits ftrunc, and ftrunc lowering generates bool ops + */ do { progress = false; NIR_PASS(progress, s, nir_opt_algebraic); } while (progress); + NIR_PASS_V(s, nir_lower_bool_to_float); + NIR_PASS_V(s, nir_copy_prop); NIR_PASS_V(s, nir_opt_dce); NIR_PASS_V(s, nir_lower_locals_to_regs); -- 2.30.2