From 0b0e74ae8277ba2ec89d950af9816a8a8e275078 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 28 Jan 2022 18:15:47 -0500 Subject: [PATCH] pan/bi: Extend LD_TILE with a register format Required for Valhall. NIR has the information anyway, pass it along. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/panfrost/bifrost/ISA.xml | 6 ++++++ src/panfrost/bifrost/bifrost_compile.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/panfrost/bifrost/ISA.xml b/src/panfrost/bifrost/ISA.xml index 08471a8bd30..4e3ae160711 100644 --- a/src/panfrost/bifrost/ISA.xml +++ b/src/panfrost/bifrost/ISA.xml @@ -6377,6 +6377,12 @@ v3 v4 + + f32 + f16 + u32 + s32 + diff --git a/src/panfrost/bifrost/bifrost_compile.c b/src/panfrost/bifrost/bifrost_compile.c index 788e38c8d33..04281475593 100644 --- a/src/panfrost/bifrost/bifrost_compile.c +++ b/src/panfrost/bifrost/bifrost_compile.c @@ -1139,6 +1139,8 @@ bi_emit_load_frag_coord(bi_builder *b, nir_intrinsic_instr *instr) static void bi_emit_ld_tile(bi_builder *b, nir_intrinsic_instr *instr) { + nir_alu_type T = nir_intrinsic_dest_type(instr); + enum bi_register_format regfmt = bi_reg_fmt_for_nir(T); unsigned rt = b->shader->inputs->blend.rt; unsigned size = nir_dest_bit_size(instr->dest); @@ -1159,7 +1161,8 @@ bi_emit_ld_tile(bi_builder *b, nir_intrinsic_instr *instr) bi_load_sysval(b, PAN_SYSVAL(RT_CONVERSION, rt | (size << 4)), 1, 0); bi_ld_tile_to(b, bi_dest_index(&instr->dest), bi_pixel_indices(b, rt), - bi_register(60), desc, (instr->num_components - 1)); + bi_register(60), desc, regfmt, + (instr->num_components - 1)); } static void