pan/bi: Add some compute intrinsic loads

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8358>
This commit is contained in:
Icecream95 2020-12-23 01:28:57 +13:00 committed by Marge Bot
parent 2a7c33bd9d
commit d267183829

View file

@ -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");
}