Mesa (master): radv: disable CPU caching for IBS to reduce fetch latency

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jul 20 11:35:54 UTC 2020


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Fri Jul 17 22:51:34 2020 +0200

radv: disable CPU caching for IBS to reduce fetch latency

AMDGPU_GEM_CREATE_CPU_GTT_USWC should be faster when CPU reads
are unexpected (because they aren't cached).

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5959>

---

 src/amd/vulkan/si_cmd_buffer.c                | 3 ++-
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 6 ++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c
index 553ea2dfa83..3ec23fc93a5 100644
--- a/src/amd/vulkan/si_cmd_buffer.c
+++ b/src/amd/vulkan/si_cmd_buffer.c
@@ -530,7 +530,8 @@ cik_create_gfx_config(struct radv_device *device)
 						     RADEON_DOMAIN_GTT,
 						     RADEON_FLAG_CPU_ACCESS|
 						     RADEON_FLAG_NO_INTERPROCESS_SHARING |
-						     RADEON_FLAG_READ_ONLY,
+						     RADEON_FLAG_READ_ONLY |
+						     RADEON_FLAG_GTT_WC,
 						     RADV_BO_PRIORITY_CS);
 	if (!device->gfx_init)
 		goto fail;
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index 23185fd5c43..15c55a7bf31 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -324,7 +324,8 @@ radv_amdgpu_cs_create(struct radeon_winsys *ws,
 						  RADEON_DOMAIN_GTT,
 						  RADEON_FLAG_CPU_ACCESS |
 						  RADEON_FLAG_NO_INTERPROCESS_SHARING |
-						  RADEON_FLAG_READ_ONLY,
+						  RADEON_FLAG_READ_ONLY |
+						  RADEON_FLAG_GTT_WC,
 						  RADV_BO_PRIORITY_CS);
 		if (!cs->ib_buffer) {
 			free(cs);
@@ -440,7 +441,8 @@ static void radv_amdgpu_cs_grow(struct radeon_cmdbuf *_cs, size_t min_size)
 						   RADEON_DOMAIN_GTT,
 						   RADEON_FLAG_CPU_ACCESS |
 						   RADEON_FLAG_NO_INTERPROCESS_SHARING |
-						   RADEON_FLAG_READ_ONLY,
+						   RADEON_FLAG_READ_ONLY |
+						   RADEON_FLAG_GTT_WC,
 						   RADV_BO_PRIORITY_CS);
 
 	if (!cs->ib_buffer) {



More information about the mesa-commit mailing list