Mesa (master): ac/sqtt: move rgp/sqtt def to ac

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


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

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

ac/sqtt: move rgp/sqtt def 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.h                | 333 ++++++++++++++++++++++++++++++++
 src/amd/vulkan/layers/radv_sqtt_layer.c | 329 +------------------------------
 2 files changed, 334 insertions(+), 328 deletions(-)

diff --git a/src/amd/common/ac_sqtt.h b/src/amd/common/ac_sqtt.h
index 9680be4c661..7fe875870cf 100644
--- a/src/amd/common/ac_sqtt.h
+++ b/src/amd/common/ac_sqtt.h
@@ -28,6 +28,8 @@
 
 #include <stdint.h>
 
+#include "c11_compat.h"
+
 struct ac_thread_trace_data {
    struct radeon_cmdbuf *start_cs[2];
    struct radeon_cmdbuf *stop_cs[2];
@@ -73,4 +75,335 @@ 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);
 
+/**
+ * Identifiers for RGP SQ thread-tracing markers (Table 1)
+ */
+enum rgp_sqtt_marker_identifier
+{
+   RGP_SQTT_MARKER_IDENTIFIER_EVENT = 0x0,
+   RGP_SQTT_MARKER_IDENTIFIER_CB_START = 0x1,
+   RGP_SQTT_MARKER_IDENTIFIER_CB_END = 0x2,
+   RGP_SQTT_MARKER_IDENTIFIER_BARRIER_START = 0x3,
+   RGP_SQTT_MARKER_IDENTIFIER_BARRIER_END = 0x4,
+   RGP_SQTT_MARKER_IDENTIFIER_USER_EVENT = 0x5,
+   RGP_SQTT_MARKER_IDENTIFIER_GENERAL_API = 0x6,
+   RGP_SQTT_MARKER_IDENTIFIER_SYNC = 0x7,
+   RGP_SQTT_MARKER_IDENTIFIER_PRESENT = 0x8,
+   RGP_SQTT_MARKER_IDENTIFIER_LAYOUT_TRANSITION = 0x9,
+   RGP_SQTT_MARKER_IDENTIFIER_RENDER_PASS = 0xA,
+   RGP_SQTT_MARKER_IDENTIFIER_RESERVED2 = 0xB,
+   RGP_SQTT_MARKER_IDENTIFIER_BIND_PIPELINE = 0xC,
+   RGP_SQTT_MARKER_IDENTIFIER_RESERVED4 = 0xD,
+   RGP_SQTT_MARKER_IDENTIFIER_RESERVED5 = 0xE,
+   RGP_SQTT_MARKER_IDENTIFIER_RESERVED6 = 0xF
+};
+
+/**
+ * RGP SQ thread-tracing marker for the start of a command buffer. (Table 2)
+ */
+struct rgp_sqtt_marker_cb_start {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t cb_id : 20;
+         uint32_t queue : 5;
+      };
+      uint32_t dword01;
+   };
+   union {
+      uint32_t device_id_low;
+      uint32_t dword02;
+   };
+   union {
+      uint32_t device_id_high;
+      uint32_t dword03;
+   };
+   union {
+      uint32_t queue_flags;
+      uint32_t dword04;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_cb_start) == 16,
+              "rgp_sqtt_marker_cb_start doesn't match RGP spec");
+
+/**
+ *
+ * RGP SQ thread-tracing marker for the end of a command buffer. (Table 3)
+ */
+struct rgp_sqtt_marker_cb_end {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t cb_id : 20;
+         uint32_t reserved : 5;
+      };
+      uint32_t dword01;
+   };
+   union {
+      uint32_t device_id_low;
+      uint32_t dword02;
+   };
+   union {
+      uint32_t device_id_high;
+      uint32_t dword03;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_cb_end) == 12,
+              "rgp_sqtt_marker_cb_end doesn't match RGP spec");
+
+/**
+ * API types used in RGP SQ thread-tracing markers for the "General API"
+ * packet.
+ */
+enum rgp_sqtt_marker_general_api_type
+{
+   ApiCmdBindPipeline = 0,
+   ApiCmdBindDescriptorSets = 1,
+   ApiCmdBindIndexBuffer = 2,
+   ApiCmdBindVertexBuffers = 3,
+   ApiCmdDraw = 4,
+   ApiCmdDrawIndexed = 5,
+   ApiCmdDrawIndirect = 6,
+   ApiCmdDrawIndexedIndirect = 7,
+   ApiCmdDrawIndirectCountAMD = 8,
+   ApiCmdDrawIndexedIndirectCountAMD = 9,
+   ApiCmdDispatch = 10,
+   ApiCmdDispatchIndirect = 11,
+   ApiCmdCopyBuffer = 12,
+   ApiCmdCopyImage = 13,
+   ApiCmdBlitImage = 14,
+   ApiCmdCopyBufferToImage = 15,
+   ApiCmdCopyImageToBuffer = 16,
+   ApiCmdUpdateBuffer = 17,
+   ApiCmdFillBuffer = 18,
+   ApiCmdClearColorImage = 19,
+   ApiCmdClearDepthStencilImage = 20,
+   ApiCmdClearAttachments = 21,
+   ApiCmdResolveImage = 22,
+   ApiCmdWaitEvents = 23,
+   ApiCmdPipelineBarrier = 24,
+   ApiCmdBeginQuery = 25,
+   ApiCmdEndQuery = 26,
+   ApiCmdResetQueryPool = 27,
+   ApiCmdWriteTimestamp = 28,
+   ApiCmdCopyQueryPoolResults = 29,
+   ApiCmdPushConstants = 30,
+   ApiCmdBeginRenderPass = 31,
+   ApiCmdNextSubpass = 32,
+   ApiCmdEndRenderPass = 33,
+   ApiCmdExecuteCommands = 34,
+   ApiCmdSetViewport = 35,
+   ApiCmdSetScissor = 36,
+   ApiCmdSetLineWidth = 37,
+   ApiCmdSetDepthBias = 38,
+   ApiCmdSetBlendConstants = 39,
+   ApiCmdSetDepthBounds = 40,
+   ApiCmdSetStencilCompareMask = 41,
+   ApiCmdSetStencilWriteMask = 42,
+   ApiCmdSetStencilReference = 43,
+   ApiCmdDrawIndirectCount = 44,
+   ApiCmdDrawIndexedIndirectCount = 45,
+   ApiInvalid = 0xffffffff
+};
+
+/**
+ * RGP SQ thread-tracing marker for a "General API" instrumentation packet.
+ */
+struct rgp_sqtt_marker_general_api {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t api_type : 20;
+         uint32_t is_end : 1;
+         uint32_t reserved : 4;
+      };
+      uint32_t dword01;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_general_api) == 4,
+              "rgp_sqtt_marker_general_api doesn't match RGP spec");
+
+/**
+ * API types used in RGP SQ thread-tracing markers (Table 16).
+ */
+enum rgp_sqtt_marker_event_type
+{
+   EventCmdDraw = 0,
+   EventCmdDrawIndexed = 1,
+   EventCmdDrawIndirect = 2,
+   EventCmdDrawIndexedIndirect = 3,
+   EventCmdDrawIndirectCountAMD = 4,
+   EventCmdDrawIndexedIndirectCountAMD = 5,
+   EventCmdDispatch = 6,
+   EventCmdDispatchIndirect = 7,
+   EventCmdCopyBuffer = 8,
+   EventCmdCopyImage = 9,
+   EventCmdBlitImage = 10,
+   EventCmdCopyBufferToImage = 11,
+   EventCmdCopyImageToBuffer = 12,
+   EventCmdUpdateBuffer = 13,
+   EventCmdFillBuffer = 14,
+   EventCmdClearColorImage = 15,
+   EventCmdClearDepthStencilImage = 16,
+   EventCmdClearAttachments = 17,
+   EventCmdResolveImage = 18,
+   EventCmdWaitEvents = 19,
+   EventCmdPipelineBarrier = 20,
+   EventCmdResetQueryPool = 21,
+   EventCmdCopyQueryPoolResults = 22,
+   EventRenderPassColorClear = 23,
+   EventRenderPassDepthStencilClear = 24,
+   EventRenderPassResolve = 25,
+   EventInternalUnknown = 26,
+   EventCmdDrawIndirectCount = 27,
+   EventCmdDrawIndexedIndirectCount = 28,
+   EventInvalid = 0xffffffff
+};
+
+/**
+ * "Event (Per-draw/dispatch)" RGP SQ thread-tracing marker. (Table 4)
+ */
+struct rgp_sqtt_marker_event {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t api_type : 24;
+         uint32_t has_thread_dims : 1;
+      };
+      uint32_t dword01;
+   };
+   union {
+      struct {
+         uint32_t cb_id : 20;
+         uint32_t vertex_offset_reg_idx : 4;
+         uint32_t instance_offset_reg_idx : 4;
+         uint32_t draw_index_reg_idx : 4;
+      };
+      uint32_t dword02;
+   };
+   union {
+      uint32_t cmd_id;
+      uint32_t dword03;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_event) == 12,
+              "rgp_sqtt_marker_event doesn't match RGP spec");
+
+/**
+ * Per-dispatch specific marker where workgroup dims are included.
+ */
+struct rgp_sqtt_marker_event_with_dims {
+   struct rgp_sqtt_marker_event event;
+   uint32_t thread_x;
+   uint32_t thread_y;
+   uint32_t thread_z;
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_event_with_dims) == 24,
+              "rgp_sqtt_marker_event_with_dims doesn't match RGP spec");
+
+/**
+ * "Barrier Start" RGP SQTT instrumentation marker (Table 5)
+ */
+struct rgp_sqtt_marker_barrier_start {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t cb_id : 20;
+         uint32_t reserved : 5;
+      };
+      uint32_t dword01;
+   };
+   union {
+      struct {
+         uint32_t driver_reason : 31;
+         uint32_t internal : 1;
+      };
+      uint32_t dword02;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_barrier_start) == 8,
+              "rgp_sqtt_marker_barrier_start doesn't match RGP spec");
+
+/**
+ * "Barrier End" RGP SQTT instrumentation marker (Table 6)
+ */
+struct rgp_sqtt_marker_barrier_end {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t cb_id : 20;
+         uint32_t wait_on_eop_ts : 1;
+         uint32_t vs_partial_flush : 1;
+         uint32_t ps_partial_flush : 1;
+         uint32_t cs_partial_flush : 1;
+         uint32_t pfp_sync_me : 1;
+      };
+      uint32_t dword01;
+   };
+   union {
+      struct {
+         uint32_t sync_cp_dma : 1;
+         uint32_t inval_tcp : 1;
+         uint32_t inval_sqI : 1;
+         uint32_t inval_sqK : 1;
+         uint32_t flush_tcc : 1;
+         uint32_t inval_tcc : 1;
+         uint32_t flush_cb : 1;
+         uint32_t inval_cb : 1;
+         uint32_t flush_db : 1;
+         uint32_t inval_db : 1;
+         uint32_t num_layout_transitions : 16;
+         uint32_t inval_gl1 : 1;
+         uint32_t reserved : 5;
+      };
+      uint32_t dword02;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_barrier_end) == 8,
+              "rgp_sqtt_marker_barrier_end doesn't match RGP spec");
+
+/**
+ * "Layout Transition" RGP SQTT instrumentation marker (Table 7)
+ */
+struct rgp_sqtt_marker_layout_transition {
+   union {
+      struct {
+         uint32_t identifier : 4;
+         uint32_t ext_dwords : 3;
+         uint32_t depth_stencil_expand : 1;
+         uint32_t htile_hiz_range_expand : 1;
+         uint32_t depth_stencil_resummarize : 1;
+         uint32_t dcc_decompress : 1;
+         uint32_t fmask_decompress : 1;
+         uint32_t fast_clear_eliminate : 1;
+         uint32_t fmask_color_expand : 1;
+         uint32_t init_mask_ram : 1;
+         uint32_t reserved1 : 17;
+      };
+      uint32_t dword01;
+   };
+   union {
+      struct {
+         uint32_t reserved2 : 32;
+      };
+      uint32_t dword02;
+   };
+};
+
+static_assert(sizeof(struct rgp_sqtt_marker_layout_transition) == 8,
+              "rgp_sqtt_marker_layout_transition doesn't match RGP spec");
+
 #endif
diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c
index 33e2bb775fc..520f184d355 100644
--- a/src/amd/vulkan/layers/radv_sqtt_layer.c
+++ b/src/amd/vulkan/layers/radv_sqtt_layer.c
@@ -24,334 +24,7 @@
 #include "radv_private.h"
 
 #include "ac_rgp.h"
-
-/**
- * Identifiers for RGP SQ thread-tracing markers (Table 1)
- */
-enum rgp_sqtt_marker_identifier {
-	RGP_SQTT_MARKER_IDENTIFIER_EVENT		= 0x0,
-	RGP_SQTT_MARKER_IDENTIFIER_CB_START             = 0x1,
-	RGP_SQTT_MARKER_IDENTIFIER_CB_END               = 0x2,
-	RGP_SQTT_MARKER_IDENTIFIER_BARRIER_START        = 0x3,
-	RGP_SQTT_MARKER_IDENTIFIER_BARRIER_END          = 0x4,
-	RGP_SQTT_MARKER_IDENTIFIER_USER_EVENT           = 0x5,
-	RGP_SQTT_MARKER_IDENTIFIER_GENERAL_API          = 0x6,
-	RGP_SQTT_MARKER_IDENTIFIER_SYNC			= 0x7,
-	RGP_SQTT_MARKER_IDENTIFIER_PRESENT		= 0x8,
-	RGP_SQTT_MARKER_IDENTIFIER_LAYOUT_TRANSITION    = 0x9,
-	RGP_SQTT_MARKER_IDENTIFIER_RENDER_PASS          = 0xA,
-	RGP_SQTT_MARKER_IDENTIFIER_RESERVED2		= 0xB,
-	RGP_SQTT_MARKER_IDENTIFIER_BIND_PIPELINE        = 0xC,
-	RGP_SQTT_MARKER_IDENTIFIER_RESERVED4		= 0xD,
-	RGP_SQTT_MARKER_IDENTIFIER_RESERVED5		= 0xE,
-	RGP_SQTT_MARKER_IDENTIFIER_RESERVED6		= 0xF
-};
-
-/**
- * RGP SQ thread-tracing marker for the start of a command buffer. (Table 2)
- */
-struct rgp_sqtt_marker_cb_start {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t cb_id : 20;
-			uint32_t queue : 5;
-		};
-		uint32_t dword01;
-	};
-	union {
-		uint32_t device_id_low;
-		uint32_t dword02;
-	};
-	union {
-		uint32_t device_id_high;
-		uint32_t dword03;
-	};
-	union {
-		uint32_t queue_flags;
-		uint32_t dword04;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_cb_start) == 16,
-	      "rgp_sqtt_marker_cb_start doesn't match RGP spec");
-
-/**
- *
- * RGP SQ thread-tracing marker for the end of a command buffer. (Table 3)
- */
-struct rgp_sqtt_marker_cb_end {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t cb_id : 20;
-			uint32_t reserved : 5;
-		};
-		uint32_t dword01;
-	};
-	union {
-		uint32_t device_id_low;
-		uint32_t dword02;
-	};
-	union {
-		uint32_t device_id_high;
-		uint32_t dword03;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_cb_end) == 12,
-	      "rgp_sqtt_marker_cb_end doesn't match RGP spec");
-
-/**
- * API types used in RGP SQ thread-tracing markers for the "General API"
- * packet.
- */
-enum rgp_sqtt_marker_general_api_type {
-	ApiCmdBindPipeline                     = 0,
-	ApiCmdBindDescriptorSets               = 1,
-	ApiCmdBindIndexBuffer                  = 2,
-	ApiCmdBindVertexBuffers                = 3,
-	ApiCmdDraw                             = 4,
-	ApiCmdDrawIndexed                      = 5,
-	ApiCmdDrawIndirect                     = 6,
-	ApiCmdDrawIndexedIndirect              = 7,
-	ApiCmdDrawIndirectCountAMD             = 8,
-	ApiCmdDrawIndexedIndirectCountAMD      = 9,
-	ApiCmdDispatch                         = 10,
-	ApiCmdDispatchIndirect                 = 11,
-	ApiCmdCopyBuffer                       = 12,
-	ApiCmdCopyImage                        = 13,
-	ApiCmdBlitImage                        = 14,
-	ApiCmdCopyBufferToImage                = 15,
-	ApiCmdCopyImageToBuffer                = 16,
-	ApiCmdUpdateBuffer                     = 17,
-	ApiCmdFillBuffer                       = 18,
-	ApiCmdClearColorImage                  = 19,
-	ApiCmdClearDepthStencilImage           = 20,
-	ApiCmdClearAttachments                 = 21,
-	ApiCmdResolveImage                     = 22,
-	ApiCmdWaitEvents                       = 23,
-	ApiCmdPipelineBarrier                  = 24,
-	ApiCmdBeginQuery                       = 25,
-	ApiCmdEndQuery                         = 26,
-	ApiCmdResetQueryPool                   = 27,
-	ApiCmdWriteTimestamp                   = 28,
-	ApiCmdCopyQueryPoolResults             = 29,
-	ApiCmdPushConstants                    = 30,
-	ApiCmdBeginRenderPass                  = 31,
-	ApiCmdNextSubpass                      = 32,
-	ApiCmdEndRenderPass                    = 33,
-	ApiCmdExecuteCommands                  = 34,
-	ApiCmdSetViewport                      = 35,
-	ApiCmdSetScissor                       = 36,
-	ApiCmdSetLineWidth                     = 37,
-	ApiCmdSetDepthBias                     = 38,
-	ApiCmdSetBlendConstants                = 39,
-	ApiCmdSetDepthBounds                   = 40,
-	ApiCmdSetStencilCompareMask            = 41,
-	ApiCmdSetStencilWriteMask              = 42,
-	ApiCmdSetStencilReference              = 43,
-	ApiCmdDrawIndirectCount                = 44,
-	ApiCmdDrawIndexedIndirectCount         = 45,
-	ApiInvalid                             = 0xffffffff
-};
-
-/**
- * RGP SQ thread-tracing marker for a "General API" instrumentation packet.
- */
-struct rgp_sqtt_marker_general_api {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t api_type : 20;
-			uint32_t is_end : 1;
-			uint32_t reserved : 4;
-		};
-		uint32_t dword01;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_general_api) == 4,
-	      "rgp_sqtt_marker_general_api doesn't match RGP spec");
-
-/**
- * API types used in RGP SQ thread-tracing markers (Table 16).
- */
-enum rgp_sqtt_marker_event_type {
-	EventCmdDraw                             = 0,
-	EventCmdDrawIndexed                      = 1,
-	EventCmdDrawIndirect                     = 2,
-	EventCmdDrawIndexedIndirect              = 3,
-	EventCmdDrawIndirectCountAMD             = 4,
-	EventCmdDrawIndexedIndirectCountAMD      = 5,
-	EventCmdDispatch                         = 6,
-	EventCmdDispatchIndirect                 = 7,
-	EventCmdCopyBuffer                       = 8,
-	EventCmdCopyImage                        = 9,
-	EventCmdBlitImage                        = 10,
-	EventCmdCopyBufferToImage                = 11,
-	EventCmdCopyImageToBuffer                = 12,
-	EventCmdUpdateBuffer                     = 13,
-	EventCmdFillBuffer                       = 14,
-	EventCmdClearColorImage                  = 15,
-	EventCmdClearDepthStencilImage           = 16,
-	EventCmdClearAttachments                 = 17,
-	EventCmdResolveImage                     = 18,
-	EventCmdWaitEvents                       = 19,
-	EventCmdPipelineBarrier                  = 20,
-	EventCmdResetQueryPool                   = 21,
-	EventCmdCopyQueryPoolResults             = 22,
-	EventRenderPassColorClear                = 23,
-	EventRenderPassDepthStencilClear         = 24,
-	EventRenderPassResolve                   = 25,
-	EventInternalUnknown                     = 26,
-	EventCmdDrawIndirectCount                = 27,
-	EventCmdDrawIndexedIndirectCount         = 28,
-	EventInvalid                             = 0xffffffff
-};
-
-/**
- * "Event (Per-draw/dispatch)" RGP SQ thread-tracing marker. (Table 4)
- */
-struct rgp_sqtt_marker_event {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t api_type : 24;
-			uint32_t has_thread_dims : 1;
-		};
-		uint32_t dword01;
-	};
-	union {
-		struct {
-			uint32_t cb_id : 20;
-			uint32_t vertex_offset_reg_idx : 4;
-			uint32_t instance_offset_reg_idx : 4;
-			uint32_t draw_index_reg_idx : 4;
-		};
-		uint32_t dword02;
-	};
-	union {
-		uint32_t cmd_id;
-		uint32_t dword03;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_event) == 12,
-	      "rgp_sqtt_marker_event doesn't match RGP spec");
-
-/**
- * Per-dispatch specific marker where workgroup dims are included.
- */
-struct rgp_sqtt_marker_event_with_dims {
-	struct rgp_sqtt_marker_event event;
-	uint32_t thread_x;
-	uint32_t thread_y;
-	uint32_t thread_z;
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_event_with_dims) == 24,
-	      "rgp_sqtt_marker_event_with_dims doesn't match RGP spec");
-
-/**
- * "Barrier Start" RGP SQTT instrumentation marker (Table 5)
- */
-struct rgp_sqtt_marker_barrier_start {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t cb_id : 20;
-			uint32_t reserved : 5;
-		};
-		uint32_t dword01;
-	};
-	union {
-		struct {
-			uint32_t driver_reason : 31;
-			uint32_t internal : 1;
-		};
-		uint32_t dword02;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_barrier_start) == 8,
-	      "rgp_sqtt_marker_barrier_start doesn't match RGP spec");
-
-/**
- * "Barrier End" RGP SQTT instrumentation marker (Table 6)
- */
-struct rgp_sqtt_marker_barrier_end {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t cb_id : 20;
-			uint32_t wait_on_eop_ts : 1;
-			uint32_t vs_partial_flush : 1;
-			uint32_t ps_partial_flush : 1;
-			uint32_t cs_partial_flush : 1;
-			uint32_t pfp_sync_me : 1;
-		};
-		uint32_t dword01;
-	};
-	union {
-		struct {
-			uint32_t sync_cp_dma : 1;
-			uint32_t inval_tcp : 1;
-			uint32_t inval_sqI : 1;
-			uint32_t inval_sqK : 1;
-			uint32_t flush_tcc : 1;
-			uint32_t inval_tcc : 1;
-			uint32_t flush_cb : 1;
-			uint32_t inval_cb : 1;
-			uint32_t flush_db : 1;
-			uint32_t inval_db : 1;
-			uint32_t num_layout_transitions : 16;
-			uint32_t inval_gl1 : 1;
-			uint32_t reserved : 5;
-		};
-		uint32_t dword02;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_barrier_end) == 8,
-	      "rgp_sqtt_marker_barrier_end doesn't match RGP spec");
-
-/**
- * "Layout Transition" RGP SQTT instrumentation marker (Table 7)
- */
-struct rgp_sqtt_marker_layout_transition {
-	union {
-		struct {
-			uint32_t identifier : 4;
-			uint32_t ext_dwords : 3;
-			uint32_t depth_stencil_expand : 1;
-			uint32_t htile_hiz_range_expand : 1;
-			uint32_t depth_stencil_resummarize : 1;
-			uint32_t dcc_decompress : 1;
-			uint32_t fmask_decompress : 1;
-			uint32_t fast_clear_eliminate : 1;
-			uint32_t fmask_color_expand : 1;
-			uint32_t init_mask_ram : 1;
-			uint32_t reserved1 : 17;
-		};
-		uint32_t dword01;
-	};
-	union {
-		struct {
-			uint32_t reserved2 : 32;
-		};
-		uint32_t dword02;
-	};
-};
-
-static_assert(sizeof(struct rgp_sqtt_marker_layout_transition) == 8,
-	      "rgp_sqtt_marker_layout_transition doesn't match RGP spec");
+#include "ac_sqtt.h"
 
 static void
 radv_write_begin_general_api_marker(struct radv_cmd_buffer *cmd_buffer,



More information about the mesa-commit mailing list