turnip: use common command buffer status code.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>
This commit is contained in:
Dave Airlie
2022-06-08 10:46:26 +10:00
committed by Marge Bot
parent 697f448f6c
commit 49c4c5cb64
3 changed files with 11 additions and 28 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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