OSDN Git Service

minigbm: amdgpu: make AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED default
authorShirish S <shirish.s@amd.com>
Thu, 19 Oct 2017 06:20:34 +0000 (11:50 +0530)
committerchrome-bot <chrome-bot@chromium.org>
Tue, 24 Oct 2017 09:20:34 +0000 (02:20 -0700)
AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED is required for mmapping
buffers in the amdgpu kernel driver.

This patch makes it default for all buffers on create.

However it should be noted that in case we find any performance related
regression in an un-tested scenario this patch needs to be reverted.

BUG=b:65297611
TEST=On Kahlee,
     UI comes up.
     GLMark2 & GLbench.bvt autotests pass
     atomictest -t multiplanes passes
     WebGL Aquarium

Change-Id: Ic82b25de63e66aac7aa04b4b255eb432c10c911b
Signed-off-by: Shirish S <shirish.s@amd.com>
Reviewed-on: https://chromium-review.googlesource.com/727824
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
amdgpu.c

index 3437cb7..f858183 100644 (file)
--- a/amdgpu.c
+++ b/amdgpu.c
@@ -354,7 +354,6 @@ static int amdgpu_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint
        struct amdgpu_bo_metadata metadata = { 0 };
        ADDR_COMPUTE_SURFACE_INFO_OUTPUT addr_out = { 0 };
        uint32_t tiling_flags = 0;
-       uint32_t gem_create_flags = 0;
        size_t plane;
        int ret;
 
@@ -372,19 +371,13 @@ static int amdgpu_bo_create(struct bo *bo, uint32_t width, uint32_t height, uint
                bo->strides[0] = addr_out.pixelPitch * DIV_ROUND_UP(addr_out.pixelBits, 8);
        }
 
-       if (use_flags & (BO_USE_SCANOUT | BO_USE_CURSOR | BO_USE_LINEAR | BO_USE_SW_READ_OFTEN |
-                        BO_USE_SW_WRITE_OFTEN | BO_USE_SW_WRITE_RARELY | BO_USE_SW_READ_RARELY))
-               gem_create_flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
-       else
-               gem_create_flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
-
        memset(&gem_create, 0, sizeof(gem_create));
 
        gem_create.in.bo_size = bo->total_size;
        gem_create.in.alignment = addr_out.baseAlign;
        /* Set the placement. */
        gem_create.in.domains = AMDGPU_GEM_DOMAIN_VRAM;
-       gem_create.in.domain_flags = gem_create_flags;
+       gem_create.in.domain_flags = AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
        /* Allocate the buffer with the preferred heap. */
        ret = drmCommandWriteRead(drv_get_fd(bo->drv), DRM_AMDGPU_GEM_CREATE, &gem_create,
                                  sizeof(gem_create));