Module: Mesa Branch: master Commit: 4321b4fc935c2ec4946d47d5e606dfa4810d7aaa URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4321b4fc935c2ec4946d47d5e606dfa4810d7aaa
Author: Boris Brezillon <[email protected]> Date: Mon Nov 16 11:30:35 2020 +0100 pan/bi: Move LD_VAR packing out of bi_pack_add() Signed-off-by: Boris Brezillon <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7636> --- src/panfrost/bifrost/bi_pack.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/panfrost/bifrost/bi_pack.c b/src/panfrost/bifrost/bi_pack.c index 977363e4894..15be31bdf26 100644 --- a/src/panfrost/bifrost/bi_pack.c +++ b/src/panfrost/bifrost/bi_pack.c @@ -710,6 +710,25 @@ bi_pack_add_special(bi_clause *clause, bi_instruction *ins, bi_registers *regs) } } +static unsigned +bi_pack_add_ld_var(bi_clause *clause, bi_instruction *ins, bi_registers *regs) +{ + bool imm = ins->src[0] & BIR_INDEX_CONSTANT; + + if (imm && bi_get_immediate(ins, 0) >= 20) + return pan_pack_add_ld_var_special(clause, ins, regs); + + if (ins->load_vary.flat) { + return imm ? + pan_pack_add_ld_var_flat_imm(clause, ins, regs) : + pan_pack_add_ld_var_flat(clause, ins, regs); + } + + return imm ? + pan_pack_add_ld_var_imm(clause, ins, regs) : + pan_pack_add_ld_var(clause, ins, regs); +} + static unsigned bi_pack_add(bi_clause *clause, bi_bundle bundle, bi_registers *regs, gl_shader_stage stage) { @@ -858,19 +877,7 @@ bi_pack_add(bi_clause *clause, bi_bundle bundle, bi_registers *regs, gl_shader_s default: unreachable("Invalid channel count"); } case BI_LOAD_VAR: - if (bundle.add->src[0] & BIR_INDEX_CONSTANT) { - if (bi_get_immediate(bundle.add, 0) >= 20) - return pan_pack_add_ld_var_special(clause, bundle.add, regs); - else if (bundle.add->load_vary.flat) - return pan_pack_add_ld_var_flat_imm(clause, bundle.add, regs); - else - return pan_pack_add_ld_var_imm(clause, bundle.add, regs); - } else { - if (bundle.add->load_vary.flat) - return pan_pack_add_ld_var_flat(clause, bundle.add, regs); - else - return pan_pack_add_ld_var(clause, bundle.add, regs); - } + return bi_pack_add_ld_var(clause, bundle.add, regs); case BI_LOAD_VAR_ADDRESS: return pan_pack_add_lea_attr_imm(clause, bundle.add, regs); case BI_LOAD_TILE: _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
