Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzw...@collabora.com> --- .../drivers/panfrost/midgard/disassemble.c | 19 +++++++++++++++---- .../drivers/panfrost/midgard/midgard.h | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/panfrost/midgard/disassemble.c b/src/gallium/drivers/panfrost/midgard/disassemble.c index 3c59119e523..743a3d4fe90 100644 --- a/src/gallium/drivers/panfrost/midgard/disassemble.c +++ b/src/gallium/drivers/panfrost/midgard/disassemble.c @@ -1048,10 +1048,23 @@ print_texture_format(int format) } static void -print_texture_op(unsigned op) +print_texture_op(unsigned op, bool gather) { /* Act like a bare name, like ESSL functions */ + if (gather) { + printf("textureGather"); + + unsigned component = op >> 4; + unsigned bottom = op & 0xF; + + if (bottom != 0x2) + printf("_unk%d", bottom); + + printf(".%c", components[component]); + return; + } + switch (op) { DEFINE_CASE(TEXTURE_OP_NORMAL, "texture"); DEFINE_CASE(TEXTURE_OP_LOD, "textureLod"); @@ -1081,7 +1094,7 @@ print_texture_word(uint32_t *word, unsigned tabs) printf("\n"); /* Broad category of texture operation in question */ - print_texture_op(texture->op); + print_texture_op(texture->op, texture->is_gather); /* Specific format in question */ print_texture_format(texture->format); @@ -1184,12 +1197,10 @@ print_texture_word(uint32_t *word, unsigned tabs) * following unknowns are zero, so we don't include them */ if (texture->unknown2 || - texture->unknown3 || texture->unknown4 || texture->unknownA || texture->unknown8) { printf("// unknown2 = 0x%x\n", texture->unknown2); - printf("// unknown3 = 0x%x\n", texture->unknown3); printf("// unknown4 = 0x%x\n", texture->unknown4); printf("// unknownA = 0x%x\n", texture->unknownA); printf("// unknown8 = 0x%x\n", texture->unknown8); diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h index c9306230872..fa3e38e0879 100644 --- a/src/gallium/drivers/panfrost/midgard/midgard.h +++ b/src/gallium/drivers/panfrost/midgard/midgard.h @@ -510,7 +510,7 @@ __attribute__((__packed__)) unsigned op : 6; unsigned shadow : 1; - unsigned unknown3 : 1; + unsigned is_gather : 1; /* A little obscure, but last is set for the last texture operation in * a shader. cont appears to just be last's opposite (?). Yeah, I know, -- 2.20.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev