Mesa (master): radeonsi: align scratch and ring buffer allocations for faster memory access

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Aug 27 20:53:40 UTC 2019


Module: Mesa
Branch: master
Commit: 40e5ac45aea3b226e7ef904ba8cb1dbb2654ce08
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=40e5ac45aea3b226e7ef904ba8cb1dbb2654ce08

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Aug 19 13:06:47 2019 -0400

radeonsi: align scratch and ring buffer allocations for faster memory access

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>

---

 src/gallium/drivers/radeonsi/si_compute.c              |  3 ++-
 src/gallium/drivers/radeonsi/si_compute_prim_discard.c |  2 +-
 src/gallium/drivers/radeonsi/si_state_shaders.c        | 13 ++++++++-----
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
index f534b5c2e5e..32f934237b0 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -422,7 +422,8 @@ static bool si_setup_compute_scratch_buffer(struct si_context *sctx,
 			si_aligned_buffer_create(&sctx->screen->b,
 						 SI_RESOURCE_FLAG_UNMAPPABLE,
 						 PIPE_USAGE_DEFAULT,
-						 scratch_needed, 256);
+						 scratch_needed,
+						 sctx->screen->info.pte_fragment_size);
 
 		if (!sctx->compute_scratch_buffer)
 			return false;
diff --git a/src/gallium/drivers/radeonsi/si_compute_prim_discard.c b/src/gallium/drivers/radeonsi/si_compute_prim_discard.c
index 373fd4ffa7c..34e6d344486 100644
--- a/src/gallium/drivers/radeonsi/si_compute_prim_discard.c
+++ b/src/gallium/drivers/radeonsi/si_compute_prim_discard.c
@@ -977,7 +977,7 @@ static bool si_initialize_prim_discard_cmdbuf(struct si_context *sctx)
 						 SI_RESOURCE_FLAG_UNMAPPABLE,
 						 PIPE_USAGE_DEFAULT,
 						 sctx->index_ring_size_per_ib * 2,
-						 2 * 1024 * 1024);
+						 sctx->screen->info.pte_fragment_size);
 		if (!sctx->index_ring)
 			return false;
 	}
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 365eed2f84e..5d64f39b287 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -3487,7 +3487,8 @@ static bool si_update_gs_ring_buffers(struct si_context *sctx)
 			pipe_aligned_buffer_create(sctx->b.screen,
 						   SI_RESOURCE_FLAG_UNMAPPABLE,
 						   PIPE_USAGE_DEFAULT,
-						   esgs_ring_size, alignment);
+						   esgs_ring_size,
+						   sctx->screen->info.pte_fragment_size);
 		if (!sctx->esgs_ring)
 			return false;
 	}
@@ -3498,7 +3499,8 @@ static bool si_update_gs_ring_buffers(struct si_context *sctx)
 			pipe_aligned_buffer_create(sctx->b.screen,
 						   SI_RESOURCE_FLAG_UNMAPPABLE,
 						   PIPE_USAGE_DEFAULT,
-						   gsvs_ring_size, alignment);
+						   gsvs_ring_size,
+						   sctx->screen->info.pte_fragment_size);
 		if (!sctx->gsvs_ring)
 			return false;
 	}
@@ -3735,9 +3737,10 @@ static bool si_update_spi_tmpring_size(struct si_context *sctx)
 
 			sctx->scratch_buffer =
 				si_aligned_buffer_create(&sctx->screen->b,
-							   SI_RESOURCE_FLAG_UNMAPPABLE,
-							   PIPE_USAGE_DEFAULT,
-							   scratch_needed_size, 256);
+							 SI_RESOURCE_FLAG_UNMAPPABLE,
+							 PIPE_USAGE_DEFAULT,
+							 scratch_needed_size,
+							 sctx->screen->info.pte_fragment_size);
 			if (!sctx->scratch_buffer)
 				return false;
 




More information about the mesa-commit mailing list