amdgpu_ttm_placement_init() callers that are using both VRAM and GTT as
domains usually don't want visible VRAM as a busy placement.

Signed-off-by: John Brooks <j...@fastquake.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
index 751bc05..0ff555a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c
@@ -138,7 +138,15 @@ static void amdgpu_ttm_placement_init(struct amdgpu_device 
*adev,
                if (flags & AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS)
                        places[c].flags |= TTM_PL_FLAG_CONTIGUOUS;
 
-               busy_places[bc++] = places[c++];
+               /* Don't set limited visible VRAM as a busy placement if we can
+                * use GTT instead
+                */
+               if (!((flags & AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED) &&
+                     adev->mc.visible_vram_size < adev->mc.real_vram_size &&
+                     (domain & AMDGPU_GEM_DOMAIN_GTT)))
+                       busy_places[bc++] = places[c];
+
+               c++;
        }
 
        if (domain & AMDGPU_GEM_DOMAIN_GTT) {
-- 
2.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to