summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2021-02-27 20:16:21 +0100
committerMarge Bot <eric+marge@anholt.net>2021-03-01 14:42:41 +0000
commit3c9452c3aef4560a5ed1da4ebad7cbe3e7f4941e (patch)
tree016f39cdbd3a1731a1d5e9dd4356f4792c87967b
parent8a60bde0cf3ff88bd98e21f9b354999b449dd475 (diff)
radv: Add sam option.
So that people without large BAR can try this out. Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9318>
-rw-r--r--docs/envvars.rst2
-rw-r--r--src/amd/vulkan/radv_cmd_buffer.c8
-rw-r--r--src/amd/vulkan/radv_debug.h1
-rw-r--r--src/amd/vulkan/radv_device.c1
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}
};