Module: Mesa Branch: main Commit: 9878469833b5f5103499631e544de7e68d5ac3a5 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9878469833b5f5103499631e544de7e68d5ac3a5
Author: Alyssa Rosenzweig <[email protected]> Date: Fri Mar 4 19:59:50 2022 -0500 pan/va: Add start property to source The bit position of sources is more complicated than (8 * index). Make it a part of the Valhall reflection information. Signed-off-by: Alyssa Rosenzweig <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15364> --- src/panfrost/bifrost/valhall/asm.py | 2 +- src/panfrost/bifrost/valhall/disasm.py | 6 +++--- src/panfrost/bifrost/valhall/valhall.py | 1 + 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/panfrost/bifrost/valhall/asm.py b/src/panfrost/bifrost/valhall/asm.py index 58e4d49a8da..4e7aee29c94 100644 --- a/src/panfrost/bifrost/valhall/asm.py +++ b/src/panfrost/bifrost/valhall/asm.py @@ -258,7 +258,7 @@ def parse_asm(line): for i, (op, src) in enumerate(zip(operands, ins.srcs)): parts = op.split('.') - encoded |= encode_source(parts[0], fau) << (i * 8) + encoded |= encode_source(parts[0], fau) << src.start # Has a swizzle been applied yet? swizzled = False diff --git a/src/panfrost/bifrost/valhall/disasm.py b/src/panfrost/bifrost/valhall/disasm.py index b557c349fea..ada4ac25708 100644 --- a/src/panfrost/bifrost/valhall/disasm.py +++ b/src/panfrost/bifrost/valhall/disasm.py @@ -199,13 +199,13 @@ va_disasm_instr(FILE *fp, uint64_t instr) % endif <% no_comma = False %> % if src.absneg: - va_print_float_src(fp, instr >> ${8 * i}, imm_mode, + va_print_float_src(fp, instr >> ${src.start}, imm_mode, instr & BIT(${src.offset['neg']}), instr & BIT(${src.offset['abs']})); % elif src.is_float: - va_print_float_src(fp, instr >> ${8 * i}, imm_mode, false, false); + va_print_float_src(fp, instr >> ${src.start}, imm_mode, false, false); % else: - va_print_src(fp, instr >> ${8 * i}, imm_mode); + va_print_src(fp, instr >> ${src.start}, imm_mode); % endif % if src.swizzle: % if src.size == 32: diff --git a/src/panfrost/bifrost/valhall/valhall.py b/src/panfrost/bifrost/valhall/valhall.py index 757149b895a..97357a46880 100644 --- a/src/panfrost/bifrost/valhall/valhall.py +++ b/src/panfrost/bifrost/valhall/valhall.py @@ -102,6 +102,7 @@ class Source: def __init__(self, index, size, is_float = False, swizzle = False, halfswizzle = False, widen = False, lanes = False, combine = False, lane = None, absneg = False, notted = False, name = ""): self.is_float = is_float or absneg + self.start = (index * 8) self.size = size self.absneg = absneg self.notted = notted
