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 <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15216>
This commit is contained in:
Alyssa Rosenzweig 2022-01-28 18:15:47 -05:00 committed by Marge Bot
parent 74107abfc6
commit 0b0e74ae82
2 changed files with 10 additions and 1 deletions

View File

@ -6377,6 +6377,12 @@
<opt>v3</opt>
<opt>v4</opt>
</mod>
<mod name="register_format" size="3" pseudo="true">
<opt>f32</opt>
<opt>f16</opt>
<opt>u32</opt>
<opt>s32</opt>
</mod>
</ins>
<ins name="+LD_VAR" staging="w=vecsize" message="varying">

View File

@ -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