From: Daniel Schürmann Date: Wed, 4 Mar 2020 15:43:15 +0000 (+0100) Subject: nir: gather info whether a shader uses demote_to_helper X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5adcfa68a935f866dd76f87a189108fbbf226630;p=mesa.git nir: gather info whether a shader uses demote_to_helper Reviewed-by: Marek Olšák Part-of: --- diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index 0a89c4b9b44..c301742dd7a 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -200,6 +200,8 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader, switch (instr->intrinsic) { case nir_intrinsic_demote: case nir_intrinsic_demote_if: + shader->info.fs.uses_demote = true; + /* fallthrough: quads with helper lanes only might be discarded entirely */ case nir_intrinsic_discard: case nir_intrinsic_discard_if: assert(shader->info.stage == MESA_SHADER_FRAGMENT); @@ -389,6 +391,7 @@ nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint) if (shader->info.stage == MESA_SHADER_FRAGMENT) { shader->info.fs.uses_sample_qualifier = false; shader->info.fs.uses_discard = false; + shader->info.fs.uses_demote = false; shader->info.fs.needs_helper_invocations = false; } diff --git a/src/compiler/shader_info.h b/src/compiler/shader_info.h index d13e51a47a6..4510ce33fb6 100644 --- a/src/compiler/shader_info.h +++ b/src/compiler/shader_info.h @@ -217,6 +217,7 @@ typedef struct shader_info { struct { bool uses_discard:1; + bool uses_demote:1; /** * True if this fragment shader requires helper invocations. This