Mesa (master): radv: Use VRAM cmdbuffers in more situations.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 14 15:27:15 UTC 2021


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

Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date:   Tue Apr 13 03:14:54 2021 +0200

radv: Use VRAM cmdbuffers in more situations.

In most games I tested we use 32 MiB of cmdbuffers+cmd upload buffers
at most. Especially since we have mutable descriptors it seems
somewhat unlikely anything else will eat it up so be a bit more
aggressive allocating them in VRAM.

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

---

 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index 2ce4fd4f8ea..b64b636e0af 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -182,9 +182,11 @@ radv_amdgpu_cs_domain(const struct radeon_winsys *_ws)
 {
    const struct radv_amdgpu_winsys *ws = (const struct radv_amdgpu_winsys *)_ws;
 
-   bool use_sam = (ws->info.all_vram_visible && ws->info.has_dedicated_vram &&
-                   !(ws->perftest & RADV_PERFTEST_NO_SAM)) ||
-                  (ws->perftest & RADV_PERFTEST_SAM);
+   bool enough_vram = ws->info.all_vram_visible ||
+                      p_atomic_read_relaxed(&ws->allocated_vram_vis) * 2 <= ws->info.vram_vis_size;
+   bool use_sam =
+      (enough_vram && ws->info.has_dedicated_vram && !(ws->perftest & RADV_PERFTEST_NO_SAM)) ||
+      (ws->perftest & RADV_PERFTEST_SAM);
    return use_sam ? RADEON_DOMAIN_VRAM : RADEON_DOMAIN_GTT;
 }
 



More information about the mesa-commit mailing list