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:
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user