From f6fdd39eabc61b973fcc84fce2ccc86493085917 Mon Sep 17 00:00:00 2001 From: Bas Nieuwenhuizen Date: Wed, 10 Apr 2019 01:42:31 +0200 Subject: radv: Use local buffers for the global bo list. Even if we don't use local buffers in general. Turns out that even though the performance is not the best the kernel still does it better than our own list. We still have to keep the radv bo list for buffers that are shared externally. This improves Talos on lowest quality setting (so as CPU bound as possible) by ~10% if the global bo list is enabled. Reviewed-by: Samuel Pitoiset --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/amd/vulkan/winsys') diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c index 79958cdd7cb..568716aa90d 100644 --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c @@ -368,7 +368,8 @@ radv_amdgpu_winsys_bo_create(struct radeon_winsys *_ws, if (!(flags & RADEON_FLAG_IMPLICIT_SYNC) && ws->info.drm_minor >= 22) request.flags |= AMDGPU_GEM_CREATE_EXPLICIT_SYNC; if (flags & RADEON_FLAG_NO_INTERPROCESS_SHARING && - ws->info.has_local_buffers && ws->use_local_bos) { + ws->info.has_local_buffers && + (ws->use_local_bos || (flags & RADEON_FLAG_PREFER_LOCAL_BO))) { bo->base.is_local = true; request.flags |= AMDGPU_GEM_CREATE_VM_ALWAYS_VALID; } -- cgit v1.2.3