From b59d67431dcd3df2ed8c43daecae1e5ca53dbe7a Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 19 May 2022 15:38:26 -0400 Subject: [PATCH] zink: run more int64 passes during optimization loop if int64 isn't available Reviewed-by: Adam Jackson Part-of: --- src/gallium/drivers/zink/zink_compiler.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index dc02348a171..9ebbf12768c 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -470,11 +470,14 @@ optimize_nir(struct nir_shader *s) bool progress; do { progress = false; + if (s->options->lower_int64_options) + NIR_PASS_V(s, nir_lower_int64); NIR_PASS_V(s, nir_lower_vars_to_ssa); NIR_PASS(progress, s, nir_lower_alu_to_scalar, filter_pack_instr, NULL); NIR_PASS(progress, s, nir_copy_prop); NIR_PASS(progress, s, nir_opt_remove_phis); if (s->options->lower_int64_options) { + NIR_PASS(progress, s, nir_lower_64bit_phis); NIR_PASS(progress, s, nir_lower_alu_to_scalar, filter_64_bit_instr, NULL); } NIR_PASS(progress, s, nir_opt_dce);