winsys/amdgpu: Handle RADEON_FLAG_NO_CPU_ACCESS
authorMichel Dänzer <michel.daenzer@amd.com>
Tue, 26 Jan 2016 07:15:59 +0000 (16:15 +0900)
committerMichel Dänzer <michel@daenzer.net>
Fri, 29 Jan 2016 07:06:06 +0000 (16:06 +0900)
Failing to do this was resulting in the kernel driver unnecessarily
leaving open the possibility of CPU access to tiled BOs.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93862

(This change shouldn't be backported to stable branches, because
released versions of xf86-video-amdgpu unnecessarily try to map the
front buffer)

Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
src/gallium/winsys/amdgpu/drm/amdgpu_bo.c

index 30a1aa8d6ba35d187bc8a06f4ffef8d533b11d4d..1e997d98dbca109fecd1c48cf27b1fc8bfe8fc7d 100644 (file)
@@ -292,6 +292,8 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *ws,
       request.preferred_heap |= AMDGPU_GEM_DOMAIN_VRAM;
       if (flags & RADEON_FLAG_CPU_ACCESS)
          request.flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
+      if (flags & RADEON_FLAG_NO_CPU_ACCESS)
+         request.flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
    }
    if (initial_domain & RADEON_DOMAIN_GTT) {
       request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT;