]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/amdgpu: use GTT only as fallback for VRAM|GTT
authorChristian König <christian.koenig@amd.com>
Mon, 27 Nov 2023 14:26:41 +0000 (15:26 +0100)
committerChristian König <christian.koenig@amd.com>
Fri, 1 Mar 2024 16:12:26 +0000 (17:12 +0100)
Try to fill up VRAM as well by setting the busy flag on GTT allocations.

This fixes the issue that when VRAM was evacuated for suspend it's never
filled up again unless the application is restarted.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Zack Rusin <zack.rusin@broadcom.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240229134003.3688-2-christian.koenig@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c

index 010b0cb7693c9c3be5608f192cb19e583a285893..8bc79924d1713329a34cd21fd1c6fc13ada541bd 100644 (file)
@@ -173,6 +173,12 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain)
                        abo->flags & AMDGPU_GEM_CREATE_PREEMPTIBLE ?
                        AMDGPU_PL_PREEMPT : TTM_PL_TT;
                places[c].flags = 0;
+               /*
+                * When GTT is just an alternative to VRAM make sure that we
+                * only use it as fallback and still try to fill up VRAM first.
+                */
+               if (domain & abo->preferred_domains & AMDGPU_GEM_DOMAIN_VRAM)
+                       places[c].flags |= TTM_PL_FLAG_FALLBACK;
                c++;
        }