From 49c4c5cb64a9b6434c4a0ba1ff97e6dd174123c8 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 8 Jun 2022 10:46:26 +1000 Subject: [PATCH] turnip: use common command buffer status code. Reviewed-by: Emma Anholt Part-of: --- src/freedreno/vulkan/tu_cmd_buffer.c | 20 +++++--------------- src/freedreno/vulkan/tu_cmd_buffer.h | 12 +----------- src/freedreno/vulkan/tu_dynamic_rendering.c | 7 +++++-- 3 files changed, 11 insertions(+), 28 deletions(-) diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c index aaf8f0edf7e..e9562a0ab7f 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.c +++ b/src/freedreno/vulkan/tu_cmd_buffer.c @@ -1753,8 +1753,6 @@ tu_reset_cmd_buffer(struct vk_command_buffer *vk_cmd_buffer, cmd_buffer->state.last_prim_params.valid = false; cmd_buffer->vsc_initialized = false; - - cmd_buffer->status = TU_CMD_BUFFER_STATUS_INITIAL; } const struct vk_command_buffer_ops tu_cmd_buffer_ops = { @@ -1779,14 +1777,9 @@ tu_cache_init(struct tu_cache_state *cache) */ VkResult tu_cmd_buffer_begin(struct tu_cmd_buffer *cmd_buffer, - VkCommandBufferUsageFlags usage_flags) + const VkCommandBufferBeginInfo *pBeginInfo) { - if (cmd_buffer->status != TU_CMD_BUFFER_STATUS_INITIAL) { - /* If the command buffer has already been resetted with - * vkResetCommandBuffer, no need to do it again. - */ - tu_reset_cmd_buffer(&cmd_buffer->vk, 0); - } + vk_command_buffer_begin(&cmd_buffer->vk, pBeginInfo); memset(&cmd_buffer->state, 0, sizeof(cmd_buffer->state)); cmd_buffer->state.index_size = 0xff; /* dirty restart index */ @@ -1795,13 +1788,12 @@ tu_cmd_buffer_begin(struct tu_cmd_buffer *cmd_buffer, tu_cache_init(&cmd_buffer->state.cache); tu_cache_init(&cmd_buffer->state.renderpass_cache); - cmd_buffer->usage_flags = usage_flags; + cmd_buffer->usage_flags = pBeginInfo->flags; tu_cs_begin(&cmd_buffer->cs); tu_cs_begin(&cmd_buffer->draw_cs); tu_cs_begin(&cmd_buffer->draw_epilogue_cs); - cmd_buffer->status = TU_CMD_BUFFER_STATUS_RECORDING; return VK_SUCCESS; } @@ -1810,7 +1802,7 @@ tu_BeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo *pBeginInfo) { TU_FROM_HANDLE(tu_cmd_buffer, cmd_buffer, commandBuffer); - VkResult result = tu_cmd_buffer_begin(cmd_buffer, pBeginInfo->flags); + VkResult result = tu_cmd_buffer_begin(cmd_buffer, pBeginInfo); if (result != VK_SUCCESS) return result; @@ -2537,9 +2529,7 @@ tu_EndCommandBuffer(VkCommandBuffer commandBuffer) tu_cs_end(&cmd_buffer->draw_cs); tu_cs_end(&cmd_buffer->draw_epilogue_cs); - cmd_buffer->status = TU_CMD_BUFFER_STATUS_EXECUTABLE; - - return vk_command_buffer_get_record_result(&cmd_buffer->vk); + return vk_command_buffer_end(&cmd_buffer->vk); } VKAPI_ATTR void VKAPI_CALL diff --git a/src/freedreno/vulkan/tu_cmd_buffer.h b/src/freedreno/vulkan/tu_cmd_buffer.h index 7164b901305..e9937caedf4 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.h +++ b/src/freedreno/vulkan/tu_cmd_buffer.h @@ -529,15 +529,6 @@ struct tu_cmd_state struct tu_primitive_params last_prim_params; }; -enum tu_cmd_buffer_status -{ - TU_CMD_BUFFER_STATUS_INVALID, - TU_CMD_BUFFER_STATUS_INITIAL, - TU_CMD_BUFFER_STATUS_RECORDING, - TU_CMD_BUFFER_STATUS_EXECUTABLE, - TU_CMD_BUFFER_STATUS_PENDING, -}; - struct tu_cmd_buffer { struct vk_command_buffer vk; @@ -552,7 +543,6 @@ struct tu_cmd_buffer struct tu_autotune_results_buffer* autotune_buffer; VkCommandBufferUsageFlags usage_flags; - enum tu_cmd_buffer_status status; VkQueryPipelineStatisticFlags inherited_pipeline_statistics; @@ -632,7 +622,7 @@ void tu_render_pass_state_merge(struct tu_render_pass_state *dst, const struct tu_render_pass_state *src); VkResult tu_cmd_buffer_begin(struct tu_cmd_buffer *cmd_buffer, - VkCommandBufferUsageFlags usage_flags); + const VkCommandBufferBeginInfo *pBeginInfo); void tu_emit_cache_flush_renderpass(struct tu_cmd_buffer *cmd_buffer, struct tu_cs *cs); diff --git a/src/freedreno/vulkan/tu_dynamic_rendering.c b/src/freedreno/vulkan/tu_dynamic_rendering.c index b74cebd05c6..fcc45f479ab 100644 --- a/src/freedreno/vulkan/tu_dynamic_rendering.c +++ b/src/freedreno/vulkan/tu_dynamic_rendering.c @@ -175,8 +175,11 @@ tu_insert_dynamic_cmdbufs(struct tu_device *dev, if (result != VK_SUCCESS) return result; - tu_cmd_buffer_begin(cmd_buffer, - VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); + const VkCommandBufferBeginInfo begin = { + .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, + .flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, + }; + tu_cmd_buffer_begin(cmd_buffer, &begin); /* Setup the render pass using the first command buffer involved in * the chain, so that it will look like we're inside a render pass