Module: Mesa Branch: main Commit: b561bcd78c300bbd27ece05beb98320233c351be URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b561bcd78c300bbd27ece05beb98320233c351be
Author: Felix DeGrood <[email protected]> Date: Wed Sep 13 20:56:59 2023 +0000 anv: set ComputeMode.PixelAsyncComputeThreadLimit = 4 Heuristic-based optimization throttling CCS work (async compute). Without throttling, background compute work consumes all threads, deminishing performance gains by running dispatch in parallel with 3D work. Optimization is heuristics based, meaning a workload might slow down when using async compute. Best value: PixelAsyncComputeThreadLimit = 4. On DG2, this equates to a max CCS thread occupancy of 37.5%. Reviewed-by: Sagar Ghuge <[email protected]> Reviewed-by: José Roberto de Souza <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25508> --- src/intel/vulkan/genX_init_state.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/intel/vulkan/genX_init_state.c b/src/intel/vulkan/genX_init_state.c index ff534193e5a..deb900753b6 100644 --- a/src/intel/vulkan/genX_init_state.c +++ b/src/intel/vulkan/genX_init_state.c @@ -654,7 +654,10 @@ init_compute_queue_state(struct anv_queue *queue) ANV_PIPE_HDC_PIPELINE_FLUSH_BIT); } - anv_batch_emit(&batch, GENX(STATE_COMPUTE_MODE), zero); + anv_batch_emit(&batch, GENX(STATE_COMPUTE_MODE), cm) { + cm.PixelAsyncComputeThreadLimit = 4; + cm.PixelAsyncComputeThreadLimitMask = 0x7; + } #endif init_common_queue_state(queue, &batch);
