OSDN Git Service

radv/winsys: fix leaking resources from bo's imported by fd
authorAndres Rodriguez <andresx7@gmail.com>
Mon, 30 Apr 2018 22:05:49 +0000 (18:05 -0400)
committerAndres Rodriguez <andresx7@gmail.com>
Mon, 30 Apr 2018 22:20:30 +0000 (18:20 -0400)
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 <andresx7@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
CC: 18.0 18.1 <mesa-stable@lists.freedesktop.org>
src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c

index e206065..8ed3e53 100644 (file)
@@ -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: