diff options
author | Marek Olšák <[email protected]> | 2019-04-15 12:49:33 -0400 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2019-04-16 10:24:19 -0400 |
commit | 4f715868a94b2c43656b3574b876bd254757521b (patch) | |
tree | 4759773306d51808b09ebed0861d9b61f9eadbe9 /src/gallium/winsys/amdgpu | |
parent | d3ce8a7f6b93e893929b81f4d6605a2a968730a1 (diff) |
winsys/amdgpu: don't set GTT with GDS & OA placements on APUs
Reviewed-by: Michel Dänzer <[email protected]>
Diffstat (limited to 'src/gallium/winsys/amdgpu')
-rw-r--r-- | src/gallium/winsys/amdgpu/drm/amdgpu_bo.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c index c1863057370..09cf9247755 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_bo.c @@ -478,8 +478,18 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *ws, request.alloc_size = size; request.phys_alignment = alignment; - if (initial_domain & RADEON_DOMAIN_VRAM) + if (initial_domain & RADEON_DOMAIN_VRAM) { request.preferred_heap |= AMDGPU_GEM_DOMAIN_VRAM; + + /* Since VRAM and GTT have almost the same performance on APUs, we could + * just set GTT. However, in order to decrease GTT(RAM) usage, which is + * shared with the OS, allow VRAM placements too. The idea is not to use + * VRAM usefully, but to use it so that it's not unused and wasted. + */ + if (!ws->info.has_dedicated_vram) + request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT; + } + if (initial_domain & RADEON_DOMAIN_GTT) request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT; if (initial_domain & RADEON_DOMAIN_GDS) @@ -487,14 +497,6 @@ static struct amdgpu_winsys_bo *amdgpu_create_bo(struct amdgpu_winsys *ws, if (initial_domain & RADEON_DOMAIN_OA) request.preferred_heap |= AMDGPU_GEM_DOMAIN_OA; - /* Since VRAM and GTT have almost the same performance on APUs, we could - * just set GTT. However, in order to decrease GTT(RAM) usage, which is - * shared with the OS, allow VRAM placements too. The idea is not to use - * VRAM usefully, but to use it so that it's not unused and wasted. - */ - if (!ws->info.has_dedicated_vram) - request.preferred_heap |= AMDGPU_GEM_DOMAIN_GTT; - if (flags & RADEON_FLAG_NO_CPU_ACCESS) request.flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS; if (flags & RADEON_FLAG_GTT_WC) |