diff options
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/nir/nir_gather_info.c | 3 | ||||
-rw-r--r-- | src/compiler/shader_info.h | 1 |
2 files changed, 4 insertions, 0 deletions
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 |