Mesa (master): ilo: disassemble TS messages

Chia-I Wu olv at kemper.freedesktop.org
Thu Nov 6 02:45:43 UTC 2014


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

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Wed Nov  5 13:10:25 2014 +0800

ilo: disassemble TS messages

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>

---

 .../drivers/ilo/shader/toy_compiler_disasm.c       |   35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
index 94321af..c3ad091 100644
--- a/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
+++ b/src/gallium/drivers/ilo/shader/toy_compiler_disasm.c
@@ -1219,6 +1219,38 @@ disasm_printer_add_mdesc_urb(struct disasm_printer *printer,
 }
 
 static void
+disasm_printer_add_mdesc_spawner(struct disasm_printer *printer,
+                                 const struct disasm_inst *inst,
+                                 uint32_t mdesc)
+{
+   const char *from;
+
+   switch (mdesc & GEN6_MSG_TS_REQUESTER_TYPE__MASK) {
+   case GEN6_MSG_TS_REQUESTER_TYPE_ROOT:  from = "root";    break;
+   case GEN6_MSG_TS_REQUESTER_TYPE_CHILD: from = "child";   break;
+   default:                               from = "BAD";     break;
+   }
+
+   disasm_printer_add(printer, "(%s thread ", from);
+
+   switch (mdesc & GEN6_MSG_TS_OPCODE__MASK) {
+   case GEN6_MSG_TS_OPCODE_DEREF:
+      disasm_printer_add(printer, "%sderef",
+            (mdesc & GEN6_MSG_TS_RESOURCE_SELECT_NO_DEREF) ? "no " : "");
+      break;
+   case GEN6_MSG_TS_OPCODE_SPAWN:
+      disasm_printer_add(printer, "spawn %s)",
+            (mdesc & GEN6_MSG_TS_RESOURCE_SELECT_ROOT) ? "root" : "child");
+      break;
+   default:
+      disasm_printer_add(printer, "BAD");
+      break;
+   }
+
+   disasm_printer_add(printer, ")");
+}
+
+static void
 disasm_printer_add_mdesc_dp_sampler(struct disasm_printer *printer,
                                     const struct disasm_inst *inst,
                                     uint32_t mdesc)
@@ -1338,6 +1370,9 @@ disasm_printer_add_mdesc(struct disasm_printer *printer,
    case GEN6_SFID_URB:
       disasm_printer_add_mdesc_urb(printer, inst, mdesc);
       break;
+   case GEN6_SFID_SPAWNER:
+      disasm_printer_add_mdesc_spawner(printer, inst, mdesc);
+      break;
    case GEN6_SFID_DP_CC:
    case GEN7_SFID_DP_DC0:
    case GEN7_SFID_PI:




More information about the mesa-commit mailing list