pan/bi: Add support for load_sample_id
Sample ID is preloaded in r61. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7206>
This commit is contained in:
parent
e2d6156742
commit
4aff27a68a
|
@ -534,6 +534,34 @@ bi_emit_blend_const(bi_context *ctx, nir_intrinsic_instr *instr)
|
|||
bi_emit(ctx, move);
|
||||
}
|
||||
|
||||
static void
|
||||
bi_emit_sample_id(bi_context *ctx, nir_intrinsic_instr *instr)
|
||||
{
|
||||
bi_instruction ins = {
|
||||
.type = BI_BITWISE,
|
||||
.op.bitwise = BI_BITWISE_AND,
|
||||
.bitwise.rshift = true,
|
||||
.dest = pan_dest_index(&instr->dest),
|
||||
.dest_type = nir_type_uint32,
|
||||
.src = {
|
||||
/* r61[16:23] contains the sampleID */
|
||||
BIR_INDEX_REGISTER | 61,
|
||||
/* mask */
|
||||
BIR_INDEX_CONSTANT | 0,
|
||||
/* shift */
|
||||
BIR_INDEX_CONSTANT | 32,
|
||||
},
|
||||
.src_types = {
|
||||
nir_type_uint32,
|
||||
nir_type_uint32,
|
||||
nir_type_uint8,
|
||||
},
|
||||
.constant.u64 = 0xffull | (0x10ull << 32ull)
|
||||
};
|
||||
|
||||
bi_emit(ctx, ins);
|
||||
}
|
||||
|
||||
static void
|
||||
emit_intrinsic(bi_context *ctx, nir_intrinsic_instr *instr)
|
||||
{
|
||||
|
@ -606,6 +634,10 @@ emit_intrinsic(bi_context *ctx, nir_intrinsic_instr *instr)
|
|||
bi_emit_blend_const(ctx, instr);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_sample_id:
|
||||
bi_emit_sample_id(ctx, instr);
|
||||
break;
|
||||
|
||||
default:
|
||||
unreachable("Unknown intrinsic");
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue