diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index 4158efa2806..af133525479 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -251,6 +251,16 @@ v3dv_cmd_buffer_add_private_obj(struct v3dv_cmd_buffer *cmd_buffer, list_addtail(&pobj->list_link, &cmd_buffer->private_objs); } +void +v3dv_cmd_buffer_destroy_bo_cb(VkDevice _device, + uint64_t pobj, + VkAllocationCallbacks *alloc) +{ + V3DV_FROM_HANDLE(v3dv_device, device, _device); + struct v3dv_bo *bo = (struct v3dv_bo *)((uintptr_t) pobj); + v3dv_bo_free(device, bo); +} + static void cmd_buffer_destroy_private_obj(struct v3dv_cmd_buffer *cmd_buffer, struct v3dv_cmd_buffer_private_obj *pobj) diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.h b/src/broadcom/vulkan/v3dv_cmd_buffer.h index ed45c89573c..d3b5d9296ad 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.h +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.h @@ -714,6 +714,13 @@ void v3dv_cmd_buffer_add_private_obj(struct v3dv_cmd_buffer *cmd_buffer, uint64_t obj, v3dv_cmd_buffer_private_obj_destroy_cb destroy_cb); +/* Generic destroy callback for v3dv_bo private objects added via + * v3dv_cmd_buffer_add_private_obj. + */ +void v3dv_cmd_buffer_destroy_bo_cb(VkDevice _device, + uint64_t pobj, + VkAllocationCallbacks *alloc); + void v3dv_merge_barrier_state(struct v3dv_barrier_state *dst, struct v3dv_barrier_state *src); diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c index 7b349642a96..5c787f932ea 100644 --- a/src/broadcom/vulkan/v3dv_meta_copy.c +++ b/src/broadcom/vulkan/v3dv_meta_copy.c @@ -1806,16 +1806,6 @@ v3dv_CmdCopyBuffer2(VkCommandBuffer commandBuffer, cmd_buffer->state.is_transfer = false; } -static void -destroy_update_buffer_cb(VkDevice _device, - uint64_t pobj, - VkAllocationCallbacks *alloc) -{ - V3DV_FROM_HANDLE(v3dv_device, device, _device); - struct v3dv_bo *bo = (struct v3dv_bo *)((uintptr_t) pobj); - v3dv_bo_free(device, bo); -} - VKAPI_ATTR void VKAPI_CALL v3dv_CmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, @@ -1856,7 +1846,7 @@ v3dv_CmdUpdateBuffer(VkCommandBuffer commandBuffer, src_bo, 0, ®ion); v3dv_cmd_buffer_add_private_obj( - cmd_buffer, (uint64_t)(uintptr_t)src_bo, destroy_update_buffer_cb); + cmd_buffer, (uint64_t)(uintptr_t)src_bo, v3dv_cmd_buffer_destroy_bo_cb); cmd_buffer->state.is_transfer = false; }