Mesa (main): intel/disasm: decode/describe more send messages
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jun 7 09:05:03 UTC 2021
Module: Mesa
Branch: main
Commit: daba2894ffc3000b76ff5f3d8c767119d6a8eeae
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=daba2894ffc3000b76ff5f3d8c767119d6a8eeae
Author: Marcin Ślusarz <marcin.slusarz at intel.com>
Date: Fri May 28 17:59:21 2021 +0200
intel/disasm: decode/describe more send messages
Signed-off-by: Marcin Ślusarz <marcin.slusarz at intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11070>
---
src/intel/compiler/brw_disasm.c | 29 +++++++++++++++++++++++++----
1 file changed, 25 insertions(+), 4 deletions(-)
diff --git a/src/intel/compiler/brw_disasm.c b/src/intel/compiler/brw_disasm.c
index 4dbaeabce7e..e54799ba2d4 100644
--- a/src/intel/compiler/brw_disasm.c
+++ b/src/intel/compiler/brw_disasm.c
@@ -426,6 +426,13 @@ static const char *const dp_dc0_msg_type_gfx7[16] = {
[GFX7_DATAPORT_DC_UNTYPED_SURFACE_WRITE] = "DC untyped surface write",
};
+static const int dp_oword_block_rw[8] = {
+ [BRW_DATAPORT_OWORD_BLOCK_1_OWORDLOW] = 1,
+ [BRW_DATAPORT_OWORD_BLOCK_2_OWORDS] = 2,
+ [BRW_DATAPORT_OWORD_BLOCK_4_OWORDS] = 4,
+ [BRW_DATAPORT_OWORD_BLOCK_8_OWORDS] = 8,
+};
+
static const char *const dp_dc1_msg_type_hsw[32] = {
[HSW_DATAPORT_DC_PORT1_UNTYPED_SURFACE_READ] = "untyped surface read",
[HSW_DATAPORT_DC_PORT1_UNTYPED_ATOMIC_OP] = "DC untyped atomic op",
@@ -1915,7 +1922,7 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
brw_sampler_desc_binding_table_index(devinfo, imm_desc),
brw_sampler_desc_sampler(devinfo, imm_desc));
} else {
- format(file, " (%u, %u, %u, ",
+ format(file, " (bti %u, sampler %u, msg_type %u, ",
brw_sampler_desc_binding_table_index(devinfo, imm_desc),
brw_sampler_desc_sampler(devinfo, imm_desc),
brw_sampler_desc_msg_type(devinfo, imm_desc));
@@ -1932,7 +1939,7 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
case GFX6_SFID_DATAPORT_CONSTANT_CACHE:
/* aka BRW_SFID_DATAPORT_READ on Gfx4-5 */
if (devinfo->ver >= 6) {
- format(file, " (%u, %u, %u, %u)",
+ format(file, " (bti %u, msg_ctrl %u, msg_type %u, write_commit %u)",
brw_dp_desc_binding_table_index(devinfo, imm_desc),
brw_dp_desc_msg_control(devinfo, imm_desc),
brw_dp_desc_msg_type(devinfo, imm_desc),
@@ -1991,7 +1998,7 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
case BRW_SFID_URB: {
unsigned opcode = brw_inst_urb_opcode(devinfo, inst);
- format(file, " %"PRIu64, brw_inst_urb_global_offset(devinfo, inst));
+ format(file, " offset %"PRIu64, brw_inst_urb_global_offset(devinfo, inst));
space = 1;
@@ -2043,7 +2050,7 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
dp_dc0_msg_type_gfx7,
brw_dp_desc_msg_type(devinfo, imm_desc), &space);
- format(file, ", %u, ",
+ format(file, ", bti %u, ",
brw_dp_desc_binding_table_index(devinfo, imm_desc));
switch (brw_inst_dp_msg_type(devinfo, inst)) {
@@ -2052,6 +2059,14 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
brw_dp_desc_msg_control(devinfo, imm_desc) & 0xf,
&space);
break;
+ case GFX7_DATAPORT_DC_OWORD_BLOCK_READ:
+ case GFX7_DATAPORT_DC_OWORD_BLOCK_WRITE: {
+ unsigned msg_ctrl = brw_dp_desc_msg_control(devinfo, imm_desc);
+ assert(dp_oword_block_rw[msg_ctrl & 7] > 0);
+ format(file, "owords = %d, aligned = %d",
+ dp_oword_block_rw[msg_ctrl & 7], (msg_ctrl >> 3) & 3);
+ break;
+ }
default:
format(file, "%u",
brw_dp_desc_msg_control(devinfo, imm_desc));
@@ -2106,6 +2121,12 @@ brw_disassemble_inst(FILE *file, const struct intel_device_info *devinfo,
control(file, "atomic float op", aop_float, msg_ctrl & 0xf,
&space);
break;
+ case GFX9_DATAPORT_DC_PORT1_A64_OWORD_BLOCK_WRITE:
+ case GFX9_DATAPORT_DC_PORT1_A64_OWORD_BLOCK_READ:
+ assert(dp_oword_block_rw[msg_ctrl & 7] > 0);
+ format(file, "owords = %d, aligned = %d",
+ dp_oword_block_rw[msg_ctrl & 7], (msg_ctrl >> 3) & 3);
+ break;
default:
format(file, "0x%x", msg_ctrl);
}
More information about the mesa-commit
mailing list