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

Author: Marek Olšák <[email protected]>
Date:   Fri Mar 10 12:17:20 2017 +0100

gallium/radeon: add threaded context counter monitoring for HUD

"tc" will be initialized by the next commit.

v2: rename stuff according to v2 changes in u_threaded_context

Reviewed-by: Nicolai Hähnle <[email protected]> (v1)
Tested-by: Dieter Nützel <[email protected]>

---

 src/gallium/drivers/radeon/r600_pipe_common.h |  1 +
 src/gallium/drivers/radeon/r600_query.c       | 21 +++++++++++++++++++++
 src/gallium/drivers/radeon/r600_query.h       |  3 +++
 3 files changed, 25 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index f9c9f115b8..b17b690fab 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -553,6 +553,7 @@ struct r600_common_context {
        unsigned                        last_dirty_tex_counter;
        unsigned                        last_compressed_colortex_counter;
 
+       struct threaded_context         *tc;
        struct u_suballocator           *allocator_zeroed_memory;
        struct slab_child_pool          pool_transfers;
        struct slab_child_pool          pool_transfers_unsync; /* for 
threaded_context */
diff --git a/src/gallium/drivers/radeon/r600_query.c 
b/src/gallium/drivers/radeon/r600_query.c
index dac9b9cbc6..9878745edc 100644
--- a/src/gallium/drivers/radeon/r600_query.c
+++ b/src/gallium/drivers/radeon/r600_query.c
@@ -133,6 +133,15 @@ static bool r600_query_sw_begin(struct r600_common_context 
*rctx,
        case R600_QUERY_NUM_L2_WRITEBACKS:
                query->begin_result = rctx->num_L2_writebacks;
                break;
+       case R600_QUERY_TC_OFFLOADED_SLOTS:
+               query->begin_result = rctx->tc ? rctx->tc->num_offloaded_slots 
: 0;
+               break;
+       case R600_QUERY_TC_DIRECT_SLOTS:
+               query->begin_result = rctx->tc ? rctx->tc->num_direct_slots : 0;
+               break;
+       case R600_QUERY_TC_NUM_SYNCS:
+               query->begin_result = rctx->tc ? rctx->tc->num_syncs : 0;
+               break;
        case R600_QUERY_REQUESTED_VRAM:
        case R600_QUERY_REQUESTED_GTT:
        case R600_QUERY_MAPPED_VRAM:
@@ -260,6 +269,15 @@ static bool r600_query_sw_end(struct r600_common_context 
*rctx,
        case R600_QUERY_NUM_L2_WRITEBACKS:
                query->end_result = rctx->num_L2_writebacks;
                break;
+       case R600_QUERY_TC_OFFLOADED_SLOTS:
+               query->end_result = rctx->tc ? rctx->tc->num_offloaded_slots : 
0;
+               break;
+       case R600_QUERY_TC_DIRECT_SLOTS:
+               query->end_result = rctx->tc ? rctx->tc->num_direct_slots : 0;
+               break;
+       case R600_QUERY_TC_NUM_SYNCS:
+               query->end_result = rctx->tc ? rctx->tc->num_syncs : 0;
+               break;
        case R600_QUERY_REQUESTED_VRAM:
        case R600_QUERY_REQUESTED_GTT:
        case R600_QUERY_MAPPED_VRAM:
@@ -1785,6 +1803,9 @@ static struct pipe_driver_query_info 
r600_driver_query_list[] = {
        X("num-fb-cache-flushes",       NUM_FB_CACHE_FLUSHES,   UINT64, 
AVERAGE),
        X("num-L2-invalidates",         NUM_L2_INVALIDATES,     UINT64, 
AVERAGE),
        X("num-L2-writebacks",          NUM_L2_WRITEBACKS,      UINT64, 
AVERAGE),
+       X("tc-offloaded-slots",         TC_OFFLOADED_SLOTS,     UINT64, 
AVERAGE),
+       X("tc-direct-slots",            TC_DIRECT_SLOTS,        UINT64, 
AVERAGE),
+       X("tc-num-syncs",               TC_NUM_SYNCS,           UINT64, 
AVERAGE),
        X("CS-thread-busy",             CS_THREAD_BUSY,         UINT64, 
AVERAGE),
        X("requested-VRAM",             REQUESTED_VRAM,         BYTES, AVERAGE),
        X("requested-GTT",              REQUESTED_GTT,          BYTES, AVERAGE),
diff --git a/src/gallium/drivers/radeon/r600_query.h 
b/src/gallium/drivers/radeon/r600_query.h
index 485bb61b70..cf99d3ab76 100644
--- a/src/gallium/drivers/radeon/r600_query.h
+++ b/src/gallium/drivers/radeon/r600_query.h
@@ -54,6 +54,9 @@ enum {
        R600_QUERY_NUM_FB_CACHE_FLUSHES,
        R600_QUERY_NUM_L2_INVALIDATES,
        R600_QUERY_NUM_L2_WRITEBACKS,
+       R600_QUERY_TC_OFFLOADED_SLOTS,
+       R600_QUERY_TC_DIRECT_SLOTS,
+       R600_QUERY_TC_NUM_SYNCS,
        R600_QUERY_CS_THREAD_BUSY,
        R600_QUERY_REQUESTED_VRAM,
        R600_QUERY_REQUESTED_GTT,

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to