Module: Mesa Branch: main Commit: 2746be68f1916c17e4b4f2161bbe7302f16e2d85 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2746be68f1916c17e4b4f2161bbe7302f16e2d85
Author: Jason Ekstrand <[email protected]> Date: Mon Feb 7 14:26:49 2022 -0600 lavapipe: Use vk_command_pool Acked-By: Mike Blumenkrantz <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14917> --- src/gallium/frontends/lavapipe/lvp_cmd_buffer.c | 22 +++++++++++----------- src/gallium/frontends/lavapipe/lvp_private.h | 8 ++++---- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c b/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c index 612a5ae3efb..b3c23aafd22 100644 --- a/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c +++ b/src/gallium/frontends/lavapipe/lvp_cmd_buffer.c @@ -33,21 +33,21 @@ static VkResult lvp_create_cmd_buffer( { struct lvp_cmd_buffer *cmd_buffer; - cmd_buffer = vk_alloc(&pool->alloc, sizeof(*cmd_buffer), 8, + cmd_buffer = vk_alloc(&pool->vk.alloc, sizeof(*cmd_buffer), 8, VK_SYSTEM_ALLOCATION_SCOPE_OBJECT); if (cmd_buffer == NULL) return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); VkResult result = vk_command_buffer_init(&cmd_buffer->vk, &device->vk, level); if (result != VK_SUCCESS) { - vk_free(&pool->alloc, cmd_buffer); + vk_free(&pool->vk.alloc, cmd_buffer); return result; } cmd_buffer->device = device; cmd_buffer->pool = pool; - cmd_buffer->queue.alloc = &pool->alloc; + cmd_buffer->queue.alloc = &pool->vk.alloc; list_inithead(&cmd_buffer->queue.cmds); cmd_buffer->status = LVP_CMD_BUFFER_STATUS_INITIAL; @@ -126,7 +126,7 @@ lvp_cmd_buffer_destroy(struct lvp_cmd_buffer *cmd_buffer) vk_free_queue(&cmd_buffer->queue); list_del(&cmd_buffer->pool_link); vk_command_buffer_finish(&cmd_buffer->vk); - vk_free(&cmd_buffer->pool->alloc, cmd_buffer); + vk_free(&cmd_buffer->pool->vk.alloc, cmd_buffer); } VKAPI_ATTR void VKAPI_CALL lvp_FreeCommandBuffers( @@ -194,12 +194,12 @@ VKAPI_ATTR VkResult VKAPI_CALL lvp_CreateCommandPool( if (pool == NULL) return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); - vk_object_base_init(&device->vk, &pool->base, - VK_OBJECT_TYPE_COMMAND_POOL); - if (pAllocator) - pool->alloc = *pAllocator; - else - pool->alloc = device->vk.alloc; + VkResult result = vk_command_pool_init(&pool->vk, &device->vk, + pCreateInfo, pAllocator); + if (result != VK_SUCCESS) { + vk_free2(&device->vk.alloc, pAllocator, pool); + return result; + } list_inithead(&pool->cmd_buffers); list_inithead(&pool->free_cmd_buffers); @@ -230,7 +230,7 @@ VKAPI_ATTR void VKAPI_CALL lvp_DestroyCommandPool( lvp_cmd_buffer_destroy(cmd_buffer); } - vk_object_base_finish(&pool->base); + vk_command_pool_finish(&pool->vk); vk_free2(&device->vk.alloc, pAllocator, pool); } diff --git a/src/gallium/frontends/lavapipe/lvp_private.h b/src/gallium/frontends/lavapipe/lvp_private.h index e961bff3c91..efd39c16791 100644 --- a/src/gallium/frontends/lavapipe/lvp_private.h +++ b/src/gallium/frontends/lavapipe/lvp_private.h @@ -63,6 +63,7 @@ typedef uint32_t xcb_window_t; #include "vk_format.h" #include "vk_cmd_queue.h" #include "vk_command_buffer.h" +#include "vk_command_pool.h" #include "vk_queue.h" #include "wsi_common.h" @@ -538,8 +539,7 @@ struct lvp_query_pool { }; struct lvp_cmd_pool { - struct vk_object_base base; - VkAllocationCallbacks alloc; + struct vk_command_pool vk; struct list_head cmd_buffers; struct list_head free_cmd_buffers; }; @@ -579,8 +579,8 @@ VK_DEFINE_HANDLE_CASTS(lvp_physical_device, vk.base, VkPhysicalDevice, VK_OBJECT_TYPE_PHYSICAL_DEVICE) VK_DEFINE_HANDLE_CASTS(lvp_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE) - VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_cmd_pool, base,VkCommandPool, - VK_OBJECT_TYPE_COMMAND_POOL) +VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_cmd_pool, vk.base, VkCommandPool, + VK_OBJECT_TYPE_COMMAND_POOL) VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer, base, VkBuffer, VK_OBJECT_TYPE_BUFFER) VK_DEFINE_NONDISP_HANDLE_CASTS(lvp_buffer_view, base, VkBufferView,
