From 73709143d22d7485dbd319210344fc1d07faa8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 9 Jan 2021 05:41:32 -0500 Subject: [PATCH] radeonsi: remove MRT-draw-calls, spill-draw-calls, spill-compute-calls due to limited usefulness and overhead in si_draw_vbo. Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_compute.c | 2 -- src/gallium/drivers/radeonsi/si_pipe.h | 3 --- src/gallium/drivers/radeonsi/si_query.c | 21 ------------------- src/gallium/drivers/radeonsi/si_query.h | 3 --- .../drivers/radeonsi/si_state_draw.cpp | 4 ---- 5 files changed, 33 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c index f3f948d4696..c2b0c24887f 100644 --- a/src/gallium/drivers/radeonsi/si_compute.c +++ b/src/gallium/drivers/radeonsi/si_compute.c @@ -914,8 +914,6 @@ static void si_launch_grid(struct pipe_context *ctx, const struct pipe_grid_info sctx->compute_is_busy = true; sctx->num_compute_calls++; - if (sctx->cs_shader_state.uses_scratch) - sctx->num_spill_compute_calls++; if (cs_regalloc_hang) sctx->flags |= SI_CONTEXT_CS_PARTIAL_FLUSH; diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index e3f3ebc43d4..6076be9ff98 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1233,11 +1233,8 @@ struct si_context { /* Misc stats. */ unsigned num_draw_calls; unsigned num_decompress_calls; - unsigned num_mrt_draw_calls; unsigned num_prim_restart_calls; - unsigned num_spill_draw_calls; unsigned num_compute_calls; - unsigned num_spill_compute_calls; unsigned num_cp_dma_calls; unsigned num_vs_flushes; unsigned num_ps_flushes; diff --git a/src/gallium/drivers/radeonsi/si_query.c b/src/gallium/drivers/radeonsi/si_query.c index 3437681eb9e..a109501e179 100644 --- a/src/gallium/drivers/radeonsi/si_query.c +++ b/src/gallium/drivers/radeonsi/si_query.c @@ -126,21 +126,12 @@ static bool si_query_sw_begin(struct si_context *sctx, struct si_query *squery) case SI_QUERY_DECOMPRESS_CALLS: query->begin_result = sctx->num_decompress_calls; break; - case SI_QUERY_MRT_DRAW_CALLS: - query->begin_result = sctx->num_mrt_draw_calls; - break; case SI_QUERY_PRIM_RESTART_CALLS: query->begin_result = sctx->num_prim_restart_calls; break; - case SI_QUERY_SPILL_DRAW_CALLS: - query->begin_result = sctx->num_spill_draw_calls; - break; case SI_QUERY_COMPUTE_CALLS: query->begin_result = sctx->num_compute_calls; break; - case SI_QUERY_SPILL_COMPUTE_CALLS: - query->begin_result = sctx->num_spill_compute_calls; - break; case SI_QUERY_CP_DMA_CALLS: query->begin_result = sctx->num_cp_dma_calls; break; @@ -301,21 +292,12 @@ static bool si_query_sw_end(struct si_context *sctx, struct si_query *squery) case SI_QUERY_DECOMPRESS_CALLS: query->end_result = sctx->num_decompress_calls; break; - case SI_QUERY_MRT_DRAW_CALLS: - query->end_result = sctx->num_mrt_draw_calls; - break; case SI_QUERY_PRIM_RESTART_CALLS: query->end_result = sctx->num_prim_restart_calls; break; - case SI_QUERY_SPILL_DRAW_CALLS: - query->end_result = sctx->num_spill_draw_calls; - break; case SI_QUERY_COMPUTE_CALLS: query->end_result = sctx->num_compute_calls; break; - case SI_QUERY_SPILL_COMPUTE_CALLS: - query->end_result = sctx->num_spill_compute_calls; - break; case SI_QUERY_CP_DMA_CALLS: query->end_result = sctx->num_cp_dma_calls; break; @@ -1670,11 +1652,8 @@ static struct pipe_driver_query_info si_driver_query_list[] = { X("num-shaders-created", NUM_SHADERS_CREATED, UINT64, CUMULATIVE), X("draw-calls", DRAW_CALLS, UINT64, AVERAGE), X("decompress-calls", DECOMPRESS_CALLS, UINT64, AVERAGE), - X("MRT-draw-calls", MRT_DRAW_CALLS, UINT64, AVERAGE), X("prim-restart-calls", PRIM_RESTART_CALLS, UINT64, AVERAGE), - X("spill-draw-calls", SPILL_DRAW_CALLS, UINT64, AVERAGE), X("compute-calls", COMPUTE_CALLS, UINT64, AVERAGE), - X("spill-compute-calls", SPILL_COMPUTE_CALLS, UINT64, AVERAGE), X("cp-dma-calls", CP_DMA_CALLS, UINT64, AVERAGE), X("num-vs-flushes", NUM_VS_FLUSHES, UINT64, AVERAGE), X("num-ps-flushes", NUM_PS_FLUSHES, UINT64, AVERAGE), diff --git a/src/gallium/drivers/radeonsi/si_query.h b/src/gallium/drivers/radeonsi/si_query.h index 9bdac5f83fc..48485c245f6 100644 --- a/src/gallium/drivers/radeonsi/si_query.h +++ b/src/gallium/drivers/radeonsi/si_query.h @@ -44,11 +44,8 @@ enum { SI_QUERY_DRAW_CALLS = PIPE_QUERY_DRIVER_SPECIFIC, SI_QUERY_DECOMPRESS_CALLS, - SI_QUERY_MRT_DRAW_CALLS, SI_QUERY_PRIM_RESTART_CALLS, - SI_QUERY_SPILL_DRAW_CALLS, SI_QUERY_COMPUTE_CALLS, - SI_QUERY_SPILL_COMPUTE_CALLS, SI_QUERY_CP_DMA_CALLS, SI_QUERY_NUM_VS_FLUSHES, SI_QUERY_NUM_PS_FLUSHES, diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp index aa56e3d067f..da9531e6ccc 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.cpp +++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp @@ -2125,12 +2125,8 @@ static void si_draw_vbo(struct pipe_context *ctx, sctx->num_decompress_calls++; } else { sctx->num_draw_calls++; - if (sctx->framebuffer.state.nr_cbufs > 1) - sctx->num_mrt_draw_calls++; if (primitive_restart) sctx->num_prim_restart_calls++; - if (G_0286E8_WAVESIZE(sctx->spi_tmpring_size)) - sctx->num_spill_draw_calls++; } DRAW_CLEANUP;