Mesa (master): panfrost/midgard/disasm: LOD immediate/register select

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 11 15:45:04 UTC 2019


Module: Mesa
Branch: master
Commit: f4ee8d055c8b32190faab4346d279ae7ebc25f45
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4ee8d055c8b32190faab4346d279ae7ebc25f45

Author: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
Date:   Mon Jun 10 11:51:54 2019 -0700

panfrost/midgard/disasm: LOD immediate/register select

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>

---

 src/gallium/drivers/panfrost/midgard/disassemble.c | 8 ++++++--
 src/gallium/drivers/panfrost/midgard/midgard.h     | 8 +++++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/panfrost/midgard/disassemble.c b/src/gallium/drivers/panfrost/midgard/disassemble.c
index 49e2042f7fd..0007c01e3d0 100644
--- a/src/gallium/drivers/panfrost/midgard/disassemble.c
+++ b/src/gallium/drivers/panfrost/midgard/disassemble.c
@@ -1137,8 +1137,12 @@ print_texture_word(uint32_t *word, unsigned tabs)
                 printf(",");
         }
 
-        if (texture->bias)
-                printf("%f, ", texture->bias / 256.0f);
+        if (texture->lod_register) {
+                /* TODO: Decode */
+                printf("lod/bias/grad reg 0x%X, ", texture->bias);
+        } else if (texture->bias) {
+                printf("%f /* %d */, ", texture->bias / 256.0f, texture->bias);
+        }
 
         printf("\n");
 
diff --git a/src/gallium/drivers/panfrost/midgard/midgard.h b/src/gallium/drivers/panfrost/midgard/midgard.h
index bc283bb3651..354d611e9df 100644
--- a/src/gallium/drivers/panfrost/midgard/midgard.h
+++ b/src/gallium/drivers/panfrost/midgard/midgard.h
@@ -520,7 +520,13 @@ __attribute__((__packed__))
         unsigned cont  : 1;
         unsigned last  : 1;
 
-        unsigned format    : 5;
+        unsigned format    : 4;
+
+        /* Is a register used to specify the
+         * LOD/bias/offset? If set, use the `bias` field as
+         * a register index. If clear, use the `bias` field
+         * as an immediate. */
+        unsigned lod_register : 1;
 
         /* Is a register used to specify an offset? If set, use the
          * offset_reg_* fields to encode this, duplicated for each of the




More information about the mesa-commit mailing list