From 3073810397221bd58ad2a3f80d84d86eeb43dd8e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Sch=C3=BCrmann?= Date: Sat, 4 Mar 2023 17:30:35 +0100 Subject: [PATCH] nir/gather_info: allow terminate() in non-PS RADV will use terminate() to end ray-tracing shaders. Part-of: --- src/compiler/nir/nir_gather_info.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index 075510c..66ffdbd 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -540,17 +540,14 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader, FALLTHROUGH; /* quads with helper lanes only might be discarded entirely */ case nir_intrinsic_discard: case nir_intrinsic_discard_if: - /* Freedreno uses the discard_if intrinsic to end GS invocations that - * don't produce a vertex, so we only set uses_discard if executing on - * a fragment shader. */ - if (shader->info.stage == MESA_SHADER_FRAGMENT) - shader->info.fs.uses_discard = true; - break; - case nir_intrinsic_terminate: case nir_intrinsic_terminate_if: - assert(shader->info.stage == MESA_SHADER_FRAGMENT); - shader->info.fs.uses_discard = true; + /* Freedreno uses discard_if() to end GS invocations that don't produce + * a vertex and RADV uses terminate() to end ray-tracing shaders, + * so only set uses_discard for fragment shaders. + */ + if (shader->info.stage == MESA_SHADER_FRAGMENT) + shader->info.fs.uses_discard = true; break; case nir_intrinsic_interp_deref_at_centroid: -- 2.7.4