summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndres Rodriguez <[email protected]>2018-04-30 18:05:49 -0400
committerAndres Rodriguez <[email protected]>2018-04-30 18:20:30 -0400
commitf56e22e49673e8234a7fe0c241b4c3eae4752f34 (patch)
treeeadaf9d931e7114dd0e8136a85f260860cfb2c77
parent2a08ae3c7cba14b9805d006e1981ba9d762bf241 (diff)
radv/winsys: fix leaking resources from bo's imported by fd
A bo's ref_count was not being initialized when imported from an fd. Therefore, we would fail to free the resource during VkFreeMemory(). This patch fixes applications like hifi VR in threaded mode, which perform frequent imports/releases of IPC shared memory. Signed-off-by: Andres Rodriguez <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> CC: 18.0 18.1 <[email protected]>
-rw-r--r--src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
index e2060651e48..8ed3e53e2d3 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
@@ -501,6 +501,7 @@ radv_amdgpu_winsys_bo_from_fd(struct radeon_winsys *_ws,
bo->size = result.alloc_size;
bo->is_shared = true;
bo->ws = ws;
+ bo->ref_count = 1;
radv_amdgpu_add_buffer_to_global_list(bo);
return (struct radeon_winsys_bo *)bo;
error_va_map: