From d26718382950b456498f6fdfa912dd8eefaae7ae Mon Sep 17 00:00:00 2001 From: Icecream95 Date: Wed, 23 Dec 2020 01:28:57 +1300 Subject: [PATCH] pan/bi: Add some compute intrinsic loads Reviewed-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/bifrost_compile.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 7f96667..0e9215f78 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -693,6 +693,23 @@ bi_emit_intrinsic(bi_builder *b, nir_intrinsic_instr *instr) bi_mov_i32_to(b, dst, bi_register(62)); break; + case nir_intrinsic_load_local_invocation_id: + for (unsigned i = 0; i < 3; ++i) + bi_u16_to_u32_to(b, bi_word(dst, i), + bi_half(bi_register(55 + i / 2), i % 2)); + break; + + case nir_intrinsic_load_work_group_id: + for (unsigned i = 0; i < 3; ++i) + bi_mov_i32_to(b, bi_word(dst, i), bi_register(57 + i)); + break; + + case nir_intrinsic_load_global_invocation_id: + case nir_intrinsic_load_global_invocation_id_zero_base: + for (unsigned i = 0; i < 3; ++i) + bi_mov_i32_to(b, bi_word(dst, i), bi_register(60 + i)); + break; + default: unreachable("Unknown intrinsic"); } -- 2.7.4