turnip: fix gem_store tracepoint

Set cmd->trace_renderpass_end after tu6_emit_tile_store in case of gmem.

To be able to do that, we push the update of cmd->trace_renderpass_end
down into tu_cmd_render_tiles/tu_cmd_render_sysmem.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18238>
This commit is contained in:
Chia-I Wu 2022-08-23 18:18:02 -07:00 committed by Marge Bot
parent f539bd7a03
commit b1ba0791e3

View file

@ -1445,6 +1445,8 @@ tu_cmd_render_tiles(struct tu_cmd_buffer *cmd,
tu6_emit_tile_store(cmd, &cmd->tile_store_cs);
tu_cs_end(&cmd->tile_store_cs);
cmd->trace_renderpass_end = u_trace_end_iterator(&cmd->trace);
tu6_tile_render_begin(cmd, &cmd->cs, autotune_result);
/* Note: we reverse the order of walking the pipes and tiles on every
@ -1484,6 +1486,7 @@ tu_cmd_render_tiles(struct tu_cmd_buffer *cmd,
trace_end_render_pass(&cmd->trace, &cmd->cs, fb, tiling);
/* tu6_render_tile has cloned these tracepoints for each tile */
if (!u_trace_iterator_equal(cmd->trace_renderpass_start, cmd->trace_renderpass_end))
u_trace_disable_event_range(cmd->trace_renderpass_start,
cmd->trace_renderpass_end);
@ -1498,6 +1501,8 @@ static void
tu_cmd_render_sysmem(struct tu_cmd_buffer *cmd,
struct tu_renderpass_result *autotune_result)
{
cmd->trace_renderpass_end = u_trace_end_iterator(&cmd->trace);
tu6_sysmem_render_begin(cmd, &cmd->cs, autotune_result);
trace_start_draw_ib_sysmem(&cmd->trace, &cmd->cs);
@ -3668,7 +3673,6 @@ tu_CmdExecuteCommands(VkCommandBuffer commandBuffer,
cmd->trace_renderpass_start = u_trace_end_iterator(&cmd->trace);
tu_append_pre_chain(cmd, secondary);
cmd->trace_renderpass_end = u_trace_end_iterator(&cmd->trace);
/* We're about to render, so we need to end the command stream
* in case there were any extra commands generated by copying
@ -3684,6 +3688,7 @@ tu_CmdExecuteCommands(VkCommandBuffer commandBuffer,
* started in the primary, so we have to move the state to
* `pre_chain`.
*/
cmd->trace_renderpass_end = u_trace_end_iterator(&cmd->trace);
tu_save_pre_chain(cmd);
cmd->state.suspend_resume = SR_AFTER_PRE_CHAIN;
break;
@ -5242,8 +5247,6 @@ tu_CmdEndRenderPass2(VkCommandBuffer commandBuffer,
return;
}
cmd_buffer->trace_renderpass_end = u_trace_end_iterator(&cmd_buffer->trace);
tu_cs_end(&cmd_buffer->draw_cs);
tu_cs_end(&cmd_buffer->draw_epilogue_cs);
tu_cmd_render(cmd_buffer);
@ -5262,8 +5265,6 @@ tu_CmdEndRendering(VkCommandBuffer commandBuffer)
{
TU_FROM_HANDLE(tu_cmd_buffer, cmd_buffer, commandBuffer);
cmd_buffer->trace_renderpass_end = u_trace_end_iterator(&cmd_buffer->trace);
if (cmd_buffer->state.suspending)
cmd_buffer->state.suspended_pass.lrz = cmd_buffer->state.lrz;
@ -5272,6 +5273,7 @@ tu_CmdEndRendering(VkCommandBuffer commandBuffer)
tu_cs_end(&cmd_buffer->draw_epilogue_cs);
if (cmd_buffer->state.suspend_resume == SR_IN_PRE_CHAIN) {
cmd_buffer->trace_renderpass_end = u_trace_end_iterator(&cmd_buffer->trace);
tu_save_pre_chain(cmd_buffer);
} else {
tu_cmd_render(cmd_buffer);