Mesa (master): ac/sqtt: move ac_is_thread_trace_complete to ac

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jan 7 09:30:10 UTC 2021


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

Author: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Date:   Tue Dec  8 12:03:52 2020 +0100

ac/sqtt: move ac_is_thread_trace_complete to ac

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

---

 src/amd/common/ac_sqtt.c   | 19 +++++++++++++++++++
 src/amd/common/ac_sqtt.h   |  8 ++++++++
 src/amd/vulkan/radv_sqtt.c | 20 +-------------------
 3 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/src/amd/common/ac_sqtt.c b/src/amd/common/ac_sqtt.c
index bdf4b87da21..7edf2d4d9e6 100644
--- a/src/amd/common/ac_sqtt.c
+++ b/src/amd/common/ac_sqtt.c
@@ -25,6 +25,7 @@
 
 #include "ac_sqtt.h"
 
+#include "ac_gpu_info.h"
 #include "util/u_math.h"
 
 uint64_t
@@ -56,3 +57,21 @@ ac_thread_trace_get_data_va(struct ac_thread_trace_data *data, uint64_t va, unsi
 {
    return va + ac_thread_trace_get_data_offset(data, se);
 }
+
+bool
+ac_is_thread_trace_complete(struct radeon_info *rad_info,
+                            const struct ac_thread_trace_info *info)
+{
+   if (rad_info->chip_class == GFX10) {
+      /* GFX10 doesn't have THREAD_TRACE_CNTR but it reports the
+       * number of dropped bytes for all SEs via
+       * THREAD_TRACE_DROPPED_CNTR.
+       */
+      return info->gfx10_dropped_cntr == 0;
+   }
+
+   /* Otherwise, compare the current thread trace offset with the number
+    * of written bytes.
+    */
+   return info->cur_offset == info->gfx9_write_counter;
+}
diff --git a/src/amd/common/ac_sqtt.h b/src/amd/common/ac_sqtt.h
index 7fe875870cf..19c82383951 100644
--- a/src/amd/common/ac_sqtt.h
+++ b/src/amd/common/ac_sqtt.h
@@ -27,9 +27,13 @@
 #define AC_SQTT_H
 
 #include <stdint.h>
+#include <stdbool.h>
 
 #include "c11_compat.h"
 
+struct radeon_cmdbuf;
+struct radeon_info;
+
 struct ac_thread_trace_data {
    struct radeon_cmdbuf *start_cs[2];
    struct radeon_cmdbuf *stop_cs[2];
@@ -75,6 +79,10 @@ ac_thread_trace_get_info_va(uint64_t va, unsigned se);
 uint64_t
 ac_thread_trace_get_data_va(struct ac_thread_trace_data *data, uint64_t va, unsigned se);
 
+bool
+ac_is_thread_trace_complete(struct radeon_info *rad_info, const struct ac_thread_trace_info *info);
+
+
 /**
  * Identifiers for RGP SQ thread-tracing markers (Table 1)
  */
diff --git a/src/amd/vulkan/radv_sqtt.c b/src/amd/vulkan/radv_sqtt.c
index 5f176d9632a..91589a3709d 100644
--- a/src/amd/vulkan/radv_sqtt.c
+++ b/src/amd/vulkan/radv_sqtt.c
@@ -537,24 +537,6 @@ radv_end_thread_trace(struct radv_queue *queue)
 	return radv_queue_internal_submit(queue, cs);
 }
 
-static bool
-radv_is_thread_trace_complete(struct radv_device *device,
-			      const struct ac_thread_trace_info *info)
-{
-	if (device->physical_device->rad_info.chip_class == GFX10) {
-		/* GFX10 doesn't have THREAD_TRACE_CNTR but it reports the
-		 * number of dropped bytes for all SEs via
-		 * THREAD_TRACE_DROPPED_CNTR.
-		 */
-		return info->gfx10_dropped_cntr == 0;
-	}
-
-	/* Otherwise, compare the current thread trace offset with the number
-	 * of written bytes.
-	 */
-	return info->cur_offset == info->gfx9_write_counter;
-}
-
 static uint32_t
 radv_get_expected_buffer_size(struct radv_device *device,
 			      const struct ac_thread_trace_info *info)
@@ -587,7 +569,7 @@ radv_get_thread_trace(struct radv_queue *queue,
 			(struct ac_thread_trace_info *)info_ptr;
 		struct ac_thread_trace_se thread_trace_se = {0};
 
-		if (!radv_is_thread_trace_complete(device, info)) {
+		if (!ac_is_thread_trace_complete(&device->physical_device->rad_info, info)) {
 			uint32_t expected_size =
 				radv_get_expected_buffer_size(device, info);
 			uint32_t available_size =



More information about the mesa-commit mailing list