Module: Mesa Branch: main Commit: c6d488814cd08c772ab22de8280f4001cc74f520 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c6d488814cd08c772ab22de8280f4001cc74f520
Author: Chia-I Wu <[email protected]> Date: Tue Aug 23 15:54:42 2022 -0700 turnip: add tu_clone_trace_range helper Remove some duplicated code. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18238> --- src/freedreno/vulkan/tu_cmd_buffer.c | 59 +++++++++++++++--------------------- 1 file changed, 24 insertions(+), 35 deletions(-) diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c index 5b9ceca4cd4..fa1e8ec78a9 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.c +++ b/src/freedreno/vulkan/tu_cmd_buffer.c @@ -17,6 +17,19 @@ #include "tu_image.h" #include "tu_tracepoints.h" +static void +tu_clone_trace_range(struct tu_cmd_buffer *cmd, struct tu_cs *cs, + struct u_trace_iterator begin, struct u_trace_iterator end) +{ + if (u_trace_iterator_equal(begin, end)) + return; + + tu_cs_emit_wfi(cs); + tu_cs_emit_pkt7(cs, CP_WAIT_FOR_ME, 0); + u_trace_clone_append(begin, end, &cmd->trace, cs, + tu_copy_timestamp_buffer); +} + void tu6_emit_event_write(struct tu_cmd_buffer *cmd, struct tu_cs *cs, @@ -1400,14 +1413,8 @@ tu6_render_tile(struct tu_cmd_buffer *cmd, struct tu_cs *cs, tu_cs_emit_call(cs, &cmd->tile_store_cs); - if (!u_trace_iterator_equal(cmd->trace_renderpass_start, cmd->trace_renderpass_end)) { - tu_cs_emit_wfi(cs); - tu_cs_emit_pkt7(&cmd->cs, CP_WAIT_FOR_ME, 0); - u_trace_clone_append(cmd->trace_renderpass_start, - cmd->trace_renderpass_end, - &cmd->trace, - cs, tu_copy_timestamp_buffer); - } + tu_clone_trace_range(cmd, cs, cmd->trace_renderpass_start, + cmd->trace_renderpass_end); tu_cs_sanity_check(cs); @@ -3515,17 +3522,11 @@ tu_append_pre_chain(struct tu_cmd_buffer *cmd, tu_cs_add_entries(&cmd->draw_cs, &secondary->pre_chain.draw_cs); tu_cs_add_entries(&cmd->draw_epilogue_cs, &secondary->pre_chain.draw_epilogue_cs); + tu_render_pass_state_merge(&cmd->state.rp, &secondary->pre_chain.state); - if (!u_trace_iterator_equal(secondary->pre_chain.trace_renderpass_start, - secondary->pre_chain.trace_renderpass_end)) { - tu_cs_emit_wfi(&cmd->draw_cs); - tu_cs_emit_pkt7(&cmd->draw_cs, CP_WAIT_FOR_ME, 0); - u_trace_clone_append(secondary->pre_chain.trace_renderpass_start, - secondary->pre_chain.trace_renderpass_end, - &cmd->trace, &cmd->draw_cs, - tu_copy_timestamp_buffer); - } + tu_clone_trace_range(cmd, &cmd->draw_cs, secondary->pre_chain.trace_renderpass_start, + secondary->pre_chain.trace_renderpass_end); } /* Take the saved post-chain in "secondary" and copy it to "cmd". @@ -3536,15 +3537,9 @@ tu_append_post_chain(struct tu_cmd_buffer *cmd, { tu_cs_add_entries(&cmd->draw_cs, &secondary->draw_cs); tu_cs_add_entries(&cmd->draw_epilogue_cs, &secondary->draw_epilogue_cs); - if (!u_trace_iterator_equal(secondary->trace_renderpass_start, - secondary->trace_renderpass_end)) { - tu_cs_emit_wfi(&cmd->draw_cs); - tu_cs_emit_pkt7(&cmd->draw_cs, CP_WAIT_FOR_ME, 0); - u_trace_clone_append(secondary->trace_renderpass_start, - secondary->trace_renderpass_end, - &cmd->trace, &cmd->draw_cs, - tu_copy_timestamp_buffer); - } + + tu_clone_trace_range(cmd, &cmd->draw_cs, secondary->trace_renderpass_start, + secondary->trace_renderpass_end); cmd->state.rp = secondary->state.rp; } @@ -3560,15 +3555,9 @@ tu_append_pre_post_chain(struct tu_cmd_buffer *cmd, { tu_cs_add_entries(&cmd->draw_cs, &secondary->draw_cs); tu_cs_add_entries(&cmd->draw_epilogue_cs, &secondary->draw_epilogue_cs); - if (!u_trace_iterator_equal(secondary->trace_renderpass_start, - secondary->trace_renderpass_end)) { - tu_cs_emit_wfi(&cmd->draw_cs); - tu_cs_emit_pkt7(&cmd->draw_cs, CP_WAIT_FOR_ME, 0); - u_trace_clone_append(secondary->trace_renderpass_start, - secondary->trace_renderpass_end, - &cmd->trace, &cmd->draw_cs, - tu_copy_timestamp_buffer); - } + + tu_clone_trace_range(cmd, &cmd->draw_cs, secondary->trace_renderpass_start, + secondary->trace_renderpass_end); tu_render_pass_state_merge(&cmd->state.rp, &secondary->state.rp); }
