diff options
author | Daniel Schürmann <[email protected]> | 2019-07-18 13:39:49 +0200 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-07-24 13:02:18 -0500 |
commit | e272fdd508f844f6545827273b3cf2f109759a6d (patch) | |
tree | 9fd5aea1f0f1e49ded60d094001c8a779b3f3ed2 /src/intel | |
parent | 517005b4cf376b292f61d786d419e2a611e4a02a (diff) |
nir,intel: lower if (cond) demote() to new intrinsic demote_if(cond)
This will effectively enable the optimization in anv.
Reviewed-by: Caio Marcelo de Oliveira Filho <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/compiler/brw_fs_nir.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index 6ea012c74b6..0b3982737dd 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -3568,6 +3568,7 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld, case nir_intrinsic_demote: case nir_intrinsic_discard: + case nir_intrinsic_demote_if: case nir_intrinsic_discard_if: { /* We track our discarded pixels in f0.1. By predicating on it, we can * update just the flag bits that aren't yet discarded. If there's no @@ -3575,7 +3576,8 @@ fs_visitor::nir_emit_fs_intrinsic(const fs_builder &bld, * channels will get turned off. */ fs_inst *cmp = NULL; - if (instr->intrinsic == nir_intrinsic_discard_if) { + if (instr->intrinsic == nir_intrinsic_demote_if || + instr->intrinsic == nir_intrinsic_discard_if) { nir_alu_instr *alu = nir_src_as_alu_instr(instr->src[0]); if (alu != NULL && |