Module: Mesa
Branch: main
Commit: b1ba0791e31230734fa5c91bed679b50a441a2f7
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1ba0791e31230734fa5c91bed679b50a441a2f7

Author: Chia-I Wu <[email protected]>
Date:   Tue Aug 23 18:18:02 2022 -0700

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>

---

 src/freedreno/vulkan/tu_cmd_buffer.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c 
b/src/freedreno/vulkan/tu_cmd_buffer.c
index d5aaed7fbfc..5b9ceca4cd4 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -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);

Reply via email to