[PATCH 4/9] drm/amdgpu: Don't force BOs into visible VRAM if they can go to GTT instead
John Brooks
john at fastquake.com
Fri Jun 23 17:39:35 UTC 2017
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 <john at 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
More information about the dri-devel
mailing list