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