radv: Add sam option.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 27 Feb 2021 19:16:21 +0000 (20:16 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 1 Mar 2021 14:42:41 +0000 (14:42 +0000)
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>

docs/envvars.rst
src/amd/vulkan/radv_cmd_buffer.c
src/amd/vulkan/radv_debug.h
src/amd/vulkan/radv_device.c

index ef0aac4..09621c2 100644 (file)
@@ -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
 
index 4193afb..511bbee 100644 (file)
@@ -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
index 8d828aa..735064a 100644 (file)
@@ -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
index 5d4031a..ce492a0 100644 (file)
@@ -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}
 };