Mesa (master): radv: Add sam option.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Mar 1 14:53:54 UTC 2021


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

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Sat Feb 27 20:16:21 2021 +0100

radv: Add sam option.

So that people without large BAR can try this out.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9318>

---

 docs/envvars.rst                 | 2 ++
 src/amd/vulkan/radv_cmd_buffer.c | 8 ++++----
 src/amd/vulkan/radv_debug.h      | 1 +
 src/amd/vulkan/radv_device.c     | 1 +
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/docs/envvars.rst b/docs/envvars.rst
index ef0aac47862..09621c2d3a9 100644
--- a/docs/envvars.rst
+++ b/docs/envvars.rst
@@ -636,6 +636,8 @@ RADV driver environment variables
       disable optimizations that get enabled when all VRAM is CPU visible.
    ``pswave32``
       enable wave32 for pixel shaders (GFX10+)
+   ``sam``
+      enable optimizations to move more driver internal objects to VRAM.
    ``tccompatcmask``
       enable TC-compat cmask for MSAA images
 
diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 4193afb5d80..511bbeeb2c1 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -486,10 +486,10 @@ radv_reset_cmd_buffer(struct radv_cmd_buffer *cmd_buffer)
 enum radeon_bo_domain
 radv_cmdbuffer_domain(const struct radeon_info *info, uint32_t perftest)
 {
-	return (info->all_vram_visible &&
-	        info->has_dedicated_vram &&
-	        !(perftest & RADV_PERFTEST_NO_SAM)) ?
-		RADEON_DOMAIN_VRAM : RADEON_DOMAIN_GTT;
+	bool use_sam = (info->all_vram_visible && info->has_dedicated_vram &&
+	                !(perftest & RADV_PERFTEST_NO_SAM)) ||
+	                (perftest & RADV_PERFTEST_SAM);
+	return use_sam ? RADEON_DOMAIN_VRAM : RADEON_DOMAIN_GTT;
 }
 
 static bool
diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h
index 8d828aaa28a..735064ad1ff 100644
--- a/src/amd/vulkan/radv_debug.h
+++ b/src/amd/vulkan/radv_debug.h
@@ -72,6 +72,7 @@ enum {
 	RADV_PERFTEST_GE_WAVE_32      = 1u << 6,
 	RADV_PERFTEST_DFSM            = 1u << 7,
 	RADV_PERFTEST_NO_SAM          = 1u << 8,
+	RADV_PERFTEST_SAM             = 1u << 9,
 };
 
 bool
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 5d4031aaab7..ce492a0d309 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -816,6 +816,7 @@ static const struct debug_control radv_perftest_options[] = {
 	{"gewave32", RADV_PERFTEST_GE_WAVE_32},
 	{"dfsm", RADV_PERFTEST_DFSM},
 	{"nosam", RADV_PERFTEST_NO_SAM},
+	{"sam", RADV_PERFTEST_SAM},
 	{NULL, 0}
 };
 



More information about the mesa-commit mailing list