pan/midgard: Print texture outmod
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 2 Aug 2019 21:26:33 +0000 (14:26 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 2 Aug 2019 23:54:53 +0000 (16:54 -0700)
I have no idea who thought this was a good idea.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/disassemble.c
src/panfrost/midgard/midgard.h

index 4cfb281b7147a9f8dedce71351cdf1a4f70d8ff6..d83855aef318bc945c8d370f13e09aa1d559f26d 100644 (file)
@@ -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);
index 8a71934a6836a5691d918b845673e9610c8784e6..41b57a108a0e99532d2e729eb32f7454d1883840 100644 (file)
@@ -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;