From 3f4eacb38aaf80fd0d1a94feffaed23b8b971e01 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Tue, 6 Apr 2021 17:27:13 +0200 Subject: [PATCH] zink: run nir_opt_algebraic_late This pass is needed to finish off the [ui]2imp lowering. Follow what other drivers do and perform some dead-code elimimation etc when lowering happens. Reviewed-By: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 7cdd0d5e94c..d840fb001ae 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -444,6 +444,16 @@ optimize_nir(struct nir_shader *s) NIR_PASS(progress, s, nir_opt_undef); NIR_PASS(progress, s, zink_nir_lower_b2b); } while (progress); + + do { + progress = false; + NIR_PASS(progress, s, nir_opt_algebraic_late); + if (progress) { + NIR_PASS_V(s, nir_copy_prop); + NIR_PASS_V(s, nir_opt_dce); + NIR_PASS_V(s, nir_opt_cse); + } + } while (progress); } /* check for a genuine gl_PointSize output vs one from nir_lower_point_size_mov */