mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
radeonsi: add SI_QUERY_TIME_ELAPSED_SDMA_SI for measuring DMA on SI
DMA on SI doesn't support the timestamp packet, so it's emulated.
This commit is contained in:
parent
c359880d8b
commit
d7250e4304
2 changed files with 20 additions and 0 deletions
|
|
@ -92,6 +92,19 @@ static enum radeon_value_id winsys_id_from_type(unsigned type)
|
|||
}
|
||||
}
|
||||
|
||||
static int64_t si_finish_dma_get_cpu_time(struct si_context *sctx)
|
||||
{
|
||||
struct pipe_fence_handle *fence = NULL;
|
||||
|
||||
si_flush_dma_cs(sctx, 0, &fence);
|
||||
if (fence) {
|
||||
sctx->ws->fence_wait(sctx->ws, fence, PIPE_TIMEOUT_INFINITE);
|
||||
sctx->ws->fence_reference(&fence, NULL);
|
||||
}
|
||||
|
||||
return os_time_get_nano();
|
||||
}
|
||||
|
||||
static bool si_query_sw_begin(struct si_context *sctx,
|
||||
struct si_query *rquery)
|
||||
{
|
||||
|
|
@ -102,6 +115,9 @@ static bool si_query_sw_begin(struct si_context *sctx,
|
|||
case PIPE_QUERY_TIMESTAMP_DISJOINT:
|
||||
case PIPE_QUERY_GPU_FINISHED:
|
||||
break;
|
||||
case SI_QUERY_TIME_ELAPSED_SDMA_SI:
|
||||
query->begin_result = si_finish_dma_get_cpu_time(sctx);
|
||||
break;
|
||||
case SI_QUERY_DRAW_CALLS:
|
||||
query->begin_result = sctx->num_draw_calls;
|
||||
break;
|
||||
|
|
@ -262,6 +278,9 @@ static bool si_query_sw_end(struct si_context *sctx,
|
|||
case PIPE_QUERY_GPU_FINISHED:
|
||||
sctx->b.flush(&sctx->b, &query->fence, PIPE_FLUSH_DEFERRED);
|
||||
break;
|
||||
case SI_QUERY_TIME_ELAPSED_SDMA_SI:
|
||||
query->end_result = si_finish_dma_get_cpu_time(sctx);
|
||||
break;
|
||||
case SI_QUERY_DRAW_CALLS:
|
||||
query->end_result = sctx->num_draw_calls;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -110,6 +110,7 @@ enum {
|
|||
SI_QUERY_GPIN_NUM_SPI,
|
||||
SI_QUERY_GPIN_NUM_SE,
|
||||
SI_QUERY_TIME_ELAPSED_SDMA,
|
||||
SI_QUERY_TIME_ELAPSED_SDMA_SI, /* emulated, measured on the CPU */
|
||||
|
||||
SI_QUERY_FIRST_PERFCOUNTER = PIPE_QUERY_DRIVER_SPECIFIC + 100,
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue