Mesa (master): vc4: If a QIR source has an unpack set, print it.

Eric Anholt anholt at kemper.freedesktop.org
Mon Oct 26 23:52:24 UTC 2015


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

Author: Eric Anholt <eric at anholt.net>
Date:   Sat Oct 24 17:33:30 2015 -0700

vc4: If a QIR source has an unpack set, print it.

Not used yet, but will be.

---

 src/gallium/drivers/vc4/vc4_qir.c        |    1 +
 src/gallium/drivers/vc4/vc4_qpu.h        |    3 +++
 src/gallium/drivers/vc4/vc4_qpu_disasm.c |   12 +++++++++---
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/vc4/vc4_qir.c b/src/gallium/drivers/vc4/vc4_qir.c
index 3d3989f..d9f51bb 100644
--- a/src/gallium/drivers/vc4/vc4_qir.c
+++ b/src/gallium/drivers/vc4/vc4_qir.c
@@ -313,6 +313,7 @@ qir_dump_inst(struct vc4_compile *c, struct qinst *inst)
         for (int i = 0; i < qir_get_op_nsrc(inst->op); i++) {
                 fprintf(stderr, ", ");
                 qir_print_reg(c, inst->src[i], false);
+                vc4_qpu_disasm_unpack(stderr, inst->src[i].pack);
         }
 }
 
diff --git a/src/gallium/drivers/vc4/vc4_qpu.h b/src/gallium/drivers/vc4/vc4_qpu.h
index 0719d28..866ca5c 100644
--- a/src/gallium/drivers/vc4/vc4_qpu.h
+++ b/src/gallium/drivers/vc4/vc4_qpu.h
@@ -213,6 +213,9 @@ void
 vc4_qpu_disasm_pack_a(FILE *out, uint32_t pack);
 
 void
+vc4_qpu_disasm_unpack(FILE *out, uint32_t pack);
+
+void
 vc4_qpu_validate(uint64_t *insts, uint32_t num_inst);
 
 #endif /* VC4_QPU_H */
diff --git a/src/gallium/drivers/vc4/vc4_qpu_disasm.c b/src/gallium/drivers/vc4/vc4_qpu_disasm.c
index a854db2..c46fd1a 100644
--- a/src/gallium/drivers/vc4/vc4_qpu_disasm.c
+++ b/src/gallium/drivers/vc4/vc4_qpu_disasm.c
@@ -257,6 +257,13 @@ vc4_qpu_disasm_pack_a(FILE *out, uint32_t pack)
         fprintf(out, "%s", DESC(qpu_pack_a, pack));
 }
 
+void
+vc4_qpu_disasm_unpack(FILE *out, uint32_t unpack)
+{
+        if (unpack != QPU_UNPACK_NOP)
+                fprintf(out, ".%s", DESC(qpu_unpack, unpack));
+}
+
 static void
 print_alu_dst(uint64_t inst, bool is_mul)
 {
@@ -315,10 +322,9 @@ print_alu_src(uint64_t inst, uint32_t mux)
                         fprintf(stderr, "%s", DESC(special_read_b, raddr - 32));
         }
 
-        if (unpack != QPU_UNPACK_NOP &&
-            ((mux == QPU_MUX_A && !(inst & QPU_PM)) ||
+        if (((mux == QPU_MUX_A && !(inst & QPU_PM)) ||
              (mux == QPU_MUX_R4 && (inst & QPU_PM)))) {
-                fprintf(stderr, ".%s", DESC(qpu_unpack, unpack));
+                vc4_qpu_disasm_unpack(stderr, unpack);
         }
 }
 




More information about the mesa-commit mailing list