diff options
author | Marek Olšák <[email protected]> | 2016-12-25 19:48:55 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-01-06 21:05:48 +0100 |
commit | 5871ebd7f104daddced9243ce0c2886ed1f816ef (patch) | |
tree | ed293fb5936ab5778c0abf476240befd6e3b2969 /src/gallium/drivers/radeon | |
parent | aac07bb79c66202f19d2d28ca6daca71a459d748 (diff) |
radeonsi: add HUD queries for cache flush stats
Reviewed-by: Bas Nieuwenhuizen <[email protected]>
Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 3 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_query.c | 21 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_query.h | 3 |
3 files changed, 27 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 2e0655602c2..74f86dc3945 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -574,6 +574,9 @@ struct r600_common_context { unsigned num_vs_flushes; unsigned num_ps_flushes; unsigned num_cs_flushes; + unsigned num_fb_cache_flushes; + unsigned num_L2_invalidates; + unsigned num_L2_writebacks; uint64_t num_alloc_tex_transfer_bytes; unsigned last_tex_ps_draw_ratio; /* for query */ diff --git a/src/gallium/drivers/radeon/r600_query.c b/src/gallium/drivers/radeon/r600_query.c index 0e4270a58cf..6b93329e0ee 100644 --- a/src/gallium/drivers/radeon/r600_query.c +++ b/src/gallium/drivers/radeon/r600_query.c @@ -113,6 +113,15 @@ static bool r600_query_sw_begin(struct r600_common_context *rctx, case R600_QUERY_NUM_CS_FLUSHES: query->begin_result = rctx->num_cs_flushes; break; + case R600_QUERY_NUM_FB_CACHE_FLUSHES: + query->begin_result = rctx->num_fb_cache_flushes; + break; + case R600_QUERY_NUM_L2_INVALIDATES: + query->begin_result = rctx->num_L2_invalidates; + break; + case R600_QUERY_NUM_L2_WRITEBACKS: + query->begin_result = rctx->num_L2_writebacks; + break; case R600_QUERY_REQUESTED_VRAM: case R600_QUERY_REQUESTED_GTT: case R600_QUERY_MAPPED_VRAM: @@ -197,6 +206,15 @@ static bool r600_query_sw_end(struct r600_common_context *rctx, case R600_QUERY_NUM_CS_FLUSHES: query->end_result = rctx->num_cs_flushes; break; + case R600_QUERY_NUM_FB_CACHE_FLUSHES: + query->end_result = rctx->num_fb_cache_flushes; + break; + case R600_QUERY_NUM_L2_INVALIDATES: + query->end_result = rctx->num_L2_invalidates; + break; + case R600_QUERY_NUM_L2_WRITEBACKS: + query->end_result = rctx->num_L2_writebacks; + break; case R600_QUERY_REQUESTED_VRAM: case R600_QUERY_REQUESTED_GTT: case R600_QUERY_MAPPED_VRAM: @@ -1665,6 +1683,9 @@ static struct pipe_driver_query_info r600_driver_query_list[] = { X("num-vs-flushes", NUM_VS_FLUSHES, UINT64, AVERAGE), X("num-ps-flushes", NUM_PS_FLUSHES, UINT64, AVERAGE), X("num-cs-flushes", NUM_CS_FLUSHES, UINT64, AVERAGE), + 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("requested-VRAM", REQUESTED_VRAM, BYTES, AVERAGE), X("requested-GTT", REQUESTED_GTT, BYTES, AVERAGE), X("mapped-VRAM", MAPPED_VRAM, BYTES, AVERAGE), diff --git a/src/gallium/drivers/radeon/r600_query.h b/src/gallium/drivers/radeon/r600_query.h index 2ff586ac11d..af434faf50b 100644 --- a/src/gallium/drivers/radeon/r600_query.h +++ b/src/gallium/drivers/radeon/r600_query.h @@ -52,6 +52,9 @@ enum { R600_QUERY_NUM_VS_FLUSHES, R600_QUERY_NUM_PS_FLUSHES, R600_QUERY_NUM_CS_FLUSHES, + R600_QUERY_NUM_FB_CACHE_FLUSHES, + R600_QUERY_NUM_L2_INVALIDATES, + R600_QUERY_NUM_L2_WRITEBACKS, R600_QUERY_REQUESTED_VRAM, R600_QUERY_REQUESTED_GTT, R600_QUERY_MAPPED_VRAM, |