Module: Mesa Branch: main Commit: 9c33c4dcbe8bd84aee5752ccabacea36f4e88e18 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9c33c4dcbe8bd84aee5752ccabacea36f4e88e18
Author: Samuel Pitoiset <[email protected]> Date: Mon Apr 24 17:15:15 2023 +0200 ac/sqtt: add a helper to get cmdbuf IDs per queue These will be used by RADV to implement queue event timings. Signed-off-by: Samuel Pitoiset <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22670> --- src/amd/common/ac_sqtt.c | 12 ++++++++++++ src/amd/common/ac_sqtt.h | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/src/amd/common/ac_sqtt.c b/src/amd/common/ac_sqtt.c index 5bc1a0a9b2d..e8e04480841 100644 --- a/src/amd/common/ac_sqtt.c +++ b/src/amd/common/ac_sqtt.c @@ -173,3 +173,15 @@ ac_check_profile_state(const struct radeon_info *info) data[n] = 0; return strstr(data, "profile") == NULL; } + +union rgp_sqtt_marker_cb_id +ac_sqtt_get_next_cmdbuf_id(struct ac_thread_trace_data *data, + enum amd_ip_type ip_type) +{ + union rgp_sqtt_marker_cb_id cb_id = {0}; + + cb_id.global_cb_id.cb_index = + p_atomic_inc_return(&data->cmdbuf_ids_per_queue[ip_type]); + + return cb_id; +} diff --git a/src/amd/common/ac_sqtt.h b/src/amd/common/ac_sqtt.h index 815f5bfdce7..3807d56e938 100644 --- a/src/amd/common/ac_sqtt.h +++ b/src/amd/common/ac_sqtt.h @@ -31,6 +31,7 @@ #include <assert.h> #include "ac_rgp.h" +#include "amd_family.h" struct radeon_cmdbuf; struct radeon_info; @@ -45,6 +46,8 @@ struct ac_thread_trace_data { int start_frame; char *trigger_file; + uint32_t cmdbuf_ids_per_queue[AMD_NUM_IP_TYPES]; + struct rgp_code_object rgp_code_object; struct rgp_loader_events rgp_loader_events; struct rgp_pso_correlation rgp_pso_correlation; @@ -531,4 +534,7 @@ bool ac_sqtt_add_code_object_loader_event(struct ac_thread_trace_data *thread_tr bool ac_check_profile_state(const struct radeon_info *info); +union rgp_sqtt_marker_cb_id ac_sqtt_get_next_cmdbuf_id(struct ac_thread_trace_data *data, + enum amd_ip_type ip_type); + #endif
