ac/sqtt: add a helper to get cmdbuf IDs per queue
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 24 Apr 2023 15:15:15 +0000 (17:15 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 26 Apr 2023 13:57:39 +0000 (13:57 +0000)
These will be used by RADV to implement queue event timings.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22670>

src/amd/common/ac_sqtt.c
src/amd/common/ac_sqtt.h

index 5bc1a0a..e8e0448 100644 (file)
@@ -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;
+}
index 815f5bf..3807d56 100644 (file)
@@ -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