mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 04:20:08 +01:00
pan/bi: Handle discard_if in NIR->BIR naively
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:
parent
6627b20de3
commit
c9ab73296c
1 changed files with 23 additions and 0 deletions
|
|
@ -351,6 +351,25 @@ bi_emit_ld_frag_coord(bi_context *ctx, nir_intrinsic_instr *instr)
|
|||
bi_emit(ctx, combine);
|
||||
}
|
||||
|
||||
static void
|
||||
bi_emit_discard_if(bi_context *ctx, nir_intrinsic_instr *instr)
|
||||
{
|
||||
nir_src cond = instr->src[0];
|
||||
nir_alu_type T = nir_type_uint | nir_src_bit_size(cond);
|
||||
|
||||
bi_instruction discard = {
|
||||
.type = BI_DISCARD,
|
||||
.cond = BI_COND_NE,
|
||||
.src_types = { T, T },
|
||||
.src = {
|
||||
pan_src_index(&cond),
|
||||
BIR_INDEX_ZERO
|
||||
},
|
||||
};
|
||||
|
||||
bi_emit(ctx, discard);
|
||||
}
|
||||
|
||||
static void
|
||||
emit_intrinsic(bi_context *ctx, nir_intrinsic_instr *instr)
|
||||
{
|
||||
|
|
@ -387,6 +406,10 @@ emit_intrinsic(bi_context *ctx, nir_intrinsic_instr *instr)
|
|||
bi_emit_ld_frag_coord(ctx, instr);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_discard_if:
|
||||
bi_emit_discard_if(ctx, instr);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_ssbo_address:
|
||||
bi_emit_sysval(ctx, &instr->instr, 1, 0);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue