diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c b/src/gallium/drivers/radeonsi/si_shader_nir.c index fefac183026..5573cc7065c 100644 --- a/src/gallium/drivers/radeonsi/si_shader_nir.c +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c @@ -837,7 +837,8 @@ static void si_lower_nir(struct si_screen *sscreen, struct nir_shader *nir) NIR_PASS_V(nir, nir_lower_subgroups, &subgroups_options); NIR_PASS_V(nir, nir_lower_discard_or_demote, - sscreen->debug_flags & DBG(FS_CORRECT_DERIVS_AFTER_KILL)); + (sscreen->debug_flags & DBG(FS_CORRECT_DERIVS_AFTER_KILL)) || + nir->info.is_arb_asm); /* Lower load constants to scalar and then clean up the mess */ NIR_PASS_V(nir, nir_lower_load_const_to_scalar);