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