aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/sb/sb_bc_dump.cpp
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2017-12-07 02:14:45 +0000
committerDave Airlie <[email protected]>2018-01-18 03:35:37 +0000
commitda977ad9074707932b9dc1f7c52b5427ce920c13 (patch)
treea9cfa1a4e05ec7c4a488a9cbd87da45f7a53f8ee /src/gallium/drivers/r600/sb/sb_bc_dump.cpp
parent05f5282d6388feb58b7f5bd24394d68c29e33aad (diff)
r600/sb: start adding GDS support
This adds support for GDS ops to sb backend. This seems to work for atomics and tess factor writes. Acked-By: Roland Scheidegger <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/gallium/drivers/r600/sb/sb_bc_dump.cpp')
-rw-r--r--src/gallium/drivers/r600/sb/sb_bc_dump.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/gallium/drivers/r600/sb/sb_bc_dump.cpp b/src/gallium/drivers/r600/sb/sb_bc_dump.cpp
index 788450b3c9c..72a1b24467d 100644
--- a/src/gallium/drivers/r600/sb/sb_bc_dump.cpp
+++ b/src/gallium/drivers/r600/sb/sb_bc_dump.cpp
@@ -452,11 +452,14 @@ void bc_dump::dump(fetch_node& n) {
sb_ostringstream s;
static const char * fetch_type[] = {"VERTEX", "INSTANCE", ""};
unsigned gds = n.bc.op_ptr->flags & FF_GDS;
+ bool gds_has_ret = gds && n.bc.op >= FETCH_OP_GDS_ADD_RET &&
+ n.bc.op <= FETCH_OP_GDS_USHORT_READ_RET;
+ bool show_dst = !gds || (gds && gds_has_ret);
s << n.bc.op_ptr->name;
fill_to(s, 20);
- if (!gds) {
+ if (show_dst) {
s << "R";
print_sel(s, n.bc.dst_gpr, n.bc.dst_rel, INDEX_LOOP, 0);
s << ".";
@@ -483,7 +486,13 @@ void bc_dump::dump(fetch_node& n) {
s << ", RID:" << n.bc.resource_id;
if (gds) {
-
+ s << " UAV:" << n.bc.uav_id;
+ if (n.bc.uav_index_mode)
+ s << " UAV:SQ_CF_INDEX_" << (n.bc.uav_index_mode - V_SQ_CF_INDEX_0);
+ if (n.bc.bcast_first_req)
+ s << " BFQ";
+ if (n.bc.alloc_consume)
+ s << " AC";
} else if (vtx) {
s << " " << fetch_type[n.bc.fetch_type];
if (!ctx.is_cayman() && n.bc.mega_fetch_count)