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