From 8ddb38209d51c53d6e5792b04b97814dfce9bce6 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 2 Aug 2019 14:26:33 -0700 Subject: pan/midgard: Print texture outmod I have no idea who thought this was a good idea. Signed-off-by: Alyssa Rosenzweig --- src/panfrost/midgard/disassemble.c | 7 ++++--- src/panfrost/midgard/midgard.h | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/panfrost/midgard/disassemble.c b/src/panfrost/midgard/disassemble.c index 4cfb281b714..d83855aef31 100644 --- a/src/panfrost/midgard/disassemble.c +++ b/src/panfrost/midgard/disassemble.c @@ -1151,6 +1151,9 @@ print_texture_word(uint32_t *word, unsigned tabs) if (texture->last) printf(".last"); + /* Output modifiers are always interpreted floatly */ + print_outmod(texture->outmod, false); + printf(" "); print_texture_reg(texture->out_full, texture->out_reg_select, texture->out_upper); @@ -1263,11 +1266,9 @@ print_texture_word(uint32_t *word, unsigned tabs) /* While not zero in general, for these simple instructions the * following unknowns are zero, so we don't include them */ - if (texture->unknown2 || - texture->unknown4 || + if (texture->unknown4 || texture->unknownA || texture->unknown8) { - printf("// unknown2 = 0x%x\n", texture->unknown2); 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/panfrost/midgard/midgard.h b/src/panfrost/midgard/midgard.h index 8a71934a683..41b57a108a0 100644 --- a/src/panfrost/midgard/midgard.h +++ b/src/panfrost/midgard/midgard.h @@ -642,7 +642,10 @@ __attribute__((__packed__)) unsigned mask : 4; - unsigned unknown2 : 2; + /* Intriguingly, textures can take an outmod just like textures. Int + * outmods are not supported as far as I can tell, so this is only + * meaningful for float samplers */ + midgard_outmod_float outmod : 2; unsigned swizzle : 8; unsigned unknown4 : 8; -- cgit v1.2.3