diff options
author | Marek Olšák <marek.olsak@amd.com> | 2016-07-15 23:16:08 +0200 |
---|---|---|
committer | Marek Olšák <marek.olsak@amd.com> | 2016-08-06 14:29:30 +0200 |
commit | 16d568d91166f800dc694510b7c455798bb3b1c0 (patch) | |
tree | ee38fbf0614d1fe06dfb0a8ec4f146f6fcfb5048 /src/gallium/drivers | |
parent | c5ff0d3e65d499dcb466c151ed48cdf67e43cdbb (diff) | |
download | external_mesa3d-16d568d91166f800dc694510b7c455798bb3b1c0.zip external_mesa3d-16d568d91166f800dc694510b7c455798bb3b1c0.tar.gz external_mesa3d-16d568d91166f800dc694510b7c455798bb3b1c0.tar.bz2 |
gallium/radeon: count gfx IB flushes
This will be used as a counter for whether fence_finish needs to flush
the IB.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/r600/r600_hw_context.c | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/si_hw_context.c | 2 |
3 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/drivers/r600/r600_hw_context.c b/src/gallium/drivers/r600/r600_hw_context.c index 113991f..4447393 100644 --- a/src/gallium/drivers/r600/r600_hw_context.c +++ b/src/gallium/drivers/r600/r600_hw_context.c @@ -286,6 +286,7 @@ void r600_context_gfx_flush(void *context, unsigned flags, ws->cs_flush(cs, flags, &ctx->b.last_gfx_fence); if (fence) ws->fence_reference(fence, ctx->b.last_gfx_fence); + ctx->b.num_gfx_cs_flushes++; r600_begin_new_cs(ctx); } diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h b/src/gallium/drivers/radeon/r600_pipe_common.h index 1f665d4..91e3cb2 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.h +++ b/src/gallium/drivers/radeon/r600_pipe_common.h @@ -514,6 +514,7 @@ struct r600_common_context { struct r600_ring dma; struct pipe_fence_handle *last_gfx_fence; struct pipe_fence_handle *last_sdma_fence; + unsigned num_gfx_cs_flushes; unsigned initial_gfx_cs_size; unsigned gpu_reset_counter; unsigned last_dirty_fb_counter; diff --git a/src/gallium/drivers/radeonsi/si_hw_context.c b/src/gallium/drivers/radeonsi/si_hw_context.c index 829dd16..49d1a35 100644 --- a/src/gallium/drivers/radeonsi/si_hw_context.c +++ b/src/gallium/drivers/radeonsi/si_hw_context.c @@ -137,9 +137,9 @@ void si_context_gfx_flush(void *context, unsigned flags, /* Flush the CS. */ ws->cs_flush(cs, flags, &ctx->b.last_gfx_fence); - if (fence) ws->fence_reference(fence, ctx->b.last_gfx_fence); + ctx->b.num_gfx_cs_flushes++; /* Check VM faults if needed. */ if (ctx->screen->b.debug_flags & DBG_CHECK_VM) { |