summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>2019-08-02 14:26:33 -0700
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>2019-08-02 16:54:53 -0700
commit8ddb38209d51c53d6e5792b04b97814dfce9bce6 (patch)
tree713f1d3b52587c75b045c0f284ddb81af2799c86 /src
parentad864a0bbbe1ff5b99d0eb4f9bbb57acb13bf6a2 (diff)
pan/midgard: Print texture outmod
I have no idea who thought this was a good idea. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Diffstat (limited to 'src')
-rw-r--r--src/panfrost/midgard/disassemble.c7
-rw-r--r--src/panfrost/midgard/midgard.h5
2 files changed, 8 insertions, 4 deletions
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;