From 5edae68966c4b629769efb8c70d7143416366beb Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Fri, 22 Nov 2024 21:20:00 +0100 Subject: [PATCH] nir/move_discards_to_top: don't move across is_helper_invocation This was obviously broken because demote results in more helper invocations. Reviewed-by: Alyssa Rosenzweig Reviewed-by: Rhys Perry Fixes: b447f5049b6 ("nir: Add a discard optimization pass") Part-of: --- src/compiler/nir/nir_opt_move_discards_to_top.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/nir/nir_opt_move_discards_to_top.c b/src/compiler/nir/nir_opt_move_discards_to_top.c index 17b9f4da725..c76aa8acaad 100644 --- a/src/compiler/nir/nir_opt_move_discards_to_top.c +++ b/src/compiler/nir/nir_opt_move_discards_to_top.c @@ -226,6 +226,8 @@ opt_move_discards_to_top_impl(nir_function_impl *impl) case nir_intrinsic_shuffle_down: case nir_intrinsic_rotate: case nir_intrinsic_masked_swizzle_amd: + case nir_intrinsic_is_helper_invocation: + case nir_intrinsic_load_helper_invocation: instr->pass_flags = STOP_PROCESSING_INSTR_FLAG; goto break_all; case nir_intrinsic_terminate_if: