From 1486b54e802ea5cb92e2bff5c4c56bc8c971308b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 8 Jun 2022 10:49:09 +1000 Subject: [PATCH] panvk: move to using common command buffer status Reviewed-by: Boris Brezillon Part-of: --- src/panfrost/vulkan/panvk_private.h | 9 --------- src/panfrost/vulkan/panvk_vX_cmd_buffer.c | 18 +++--------------- 2 files changed, 3 insertions(+), 24 deletions(-) diff --git a/src/panfrost/vulkan/panvk_private.h b/src/panfrost/vulkan/panvk_private.h index ef7a7b5b2d9..84d019a2804 100644 --- a/src/panfrost/vulkan/panvk_private.h +++ b/src/panfrost/vulkan/panvk_private.h @@ -732,14 +732,6 @@ struct panvk_cmd_pool { struct panvk_bo_pool tls_bo_pool; }; -enum panvk_cmd_buffer_status { - PANVK_CMD_BUFFER_STATUS_INVALID, - PANVK_CMD_BUFFER_STATUS_INITIAL, - PANVK_CMD_BUFFER_STATUS_RECORDING, - PANVK_CMD_BUFFER_STATUS_EXECUTABLE, - PANVK_CMD_BUFFER_STATUS_PENDING, -}; - struct panvk_cmd_bind_point_state { struct panvk_descriptor_state desc_state; const struct panvk_pipeline *pipeline; @@ -756,7 +748,6 @@ struct panvk_cmd_buffer { struct list_head batches; VkCommandBufferUsageFlags usage_flags; - enum panvk_cmd_buffer_status status; struct panvk_cmd_state state; diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c index f6077b45f74..e7b975291ff 100644 --- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c +++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c @@ -905,13 +905,10 @@ VkResult panvk_per_arch(EndCommandBuffer)(VkCommandBuffer commandBuffer) { VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer); - VkResult ret = vk_command_buffer_get_record_result(&cmdbuf->vk); panvk_per_arch(cmd_close_batch)(cmdbuf); - cmdbuf->status = ret == VK_SUCCESS ? - PANVK_CMD_BUFFER_STATUS_EXECUTABLE : - PANVK_CMD_BUFFER_STATUS_INVALID; - return ret; + + return vk_command_buffer_end(&cmdbuf->vk); } void @@ -1086,7 +1083,6 @@ panvk_reset_cmdbuf(struct vk_command_buffer *vk_cmdbuf, panvk_pool_reset(&cmdbuf->desc_pool); panvk_pool_reset(&cmdbuf->tls_pool); panvk_pool_reset(&cmdbuf->varying_pool); - cmdbuf->status = PANVK_CMD_BUFFER_STATUS_INITIAL; for (unsigned i = 0; i < MAX_BIND_POINTS; i++) memset(&cmdbuf->bind_points[i].desc_state.sets, 0, sizeof(cmdbuf->bind_points[0].desc_state.sets)); @@ -1149,7 +1145,6 @@ panvk_create_cmdbuf(struct vk_command_pool *vk_pool, panvk_debug_adjust_bo_flags(device, PAN_BO_INVISIBLE), 64 * 1024, "Varyings pool", false); list_inithead(&cmdbuf->batches); - cmdbuf->status = PANVK_CMD_BUFFER_STATUS_INITIAL; *cmdbuf_out = &cmdbuf->vk; return VK_SUCCESS; } @@ -1166,17 +1161,10 @@ panvk_per_arch(BeginCommandBuffer)(VkCommandBuffer commandBuffer, { VK_FROM_HANDLE(panvk_cmd_buffer, cmdbuf, commandBuffer); - if (cmdbuf->status != PANVK_CMD_BUFFER_STATUS_INITIAL) { - /* If the command buffer has already been reset with - * vkResetCommandBuffer, no need to do it again. - */ - panvk_reset_cmdbuf(&cmdbuf->vk, 0); - } + vk_command_buffer_begin(&cmdbuf->vk, pBeginInfo); memset(&cmdbuf->state, 0, sizeof(cmdbuf->state)); - cmdbuf->status = PANVK_CMD_BUFFER_STATUS_RECORDING; - return VK_SUCCESS; }