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

Reply via email to