pan/bi: Emit discard (not if)

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4883>
This commit is contained in:
Alyssa Rosenzweig 2020-05-01 18:26:18 -04:00
parent c9ab73296c
commit 7d867f787f

View file

@ -351,6 +351,20 @@ bi_emit_ld_frag_coord(bi_context *ctx, nir_intrinsic_instr *instr)
bi_emit(ctx, combine);
}
static void
bi_emit_discard(bi_context *ctx, nir_intrinsic_instr *instr)
{
/* Goofy lowering */
bi_instruction discard = {
.type = BI_DISCARD,
.cond = BI_COND_EQ,
.src_types = { nir_type_uint32, nir_type_uint32 },
.src = { BIR_INDEX_ZERO, BIR_INDEX_ZERO },
};
bi_emit(ctx, discard);
}
static void
bi_emit_discard_if(bi_context *ctx, nir_intrinsic_instr *instr)
{
@ -406,6 +420,10 @@ emit_intrinsic(bi_context *ctx, nir_intrinsic_instr *instr)
bi_emit_ld_frag_coord(ctx, instr);
break;
case nir_intrinsic_discard:
bi_emit_discard(ctx, instr);
break;
case nir_intrinsic_discard_if:
bi_emit_discard_if(ctx, instr);
break;