The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

a/util: Set colors for various zones when supported by TRACY

authored by

Robbie Bridgewater and committed by
Ryan Pavlik
03780e9c 7e14d7eb

+74 -26
+74 -26
src/xrt/auxiliary/util/u_trace_marker.h
··· 30 30 #include <percetto.h> 31 31 #endif 32 32 33 + #if !defined(XRT_FEATURE_TRACING) || !defined(XRT_HAVE_TRACY) 34 + #define U_TRACE_FUNC_COLOR(CATEGORY, COLOR) \ 35 + (void)COLOR; \ 36 + U_TRACE_FUNC(CATEGORY) 37 + 38 + #define U_TRACE_IDENT_COLOR(CATEGORY, IDENT, COLOR) \ 39 + (void)COLOR; \ 40 + U_TRACE_IDENT(CATEGORY, IDENT) 41 + 42 + #define U_TRACE_BEGIN_COLOR(CATEGORY, IDENT, COLOR) \ 43 + (void)COLOR; \ 44 + U_TRACE_BEGIN(CATEGORY, IDENT) 45 + #endif 46 + 33 47 #if defined(XRT_FEATURE_TRACING) && defined(XRT_HAVE_TRACY) 34 48 #ifndef TRACY_ENABLE 35 49 #define TRACY_ENABLE ··· 73 87 void 74 88 u_trace_marker_init(void); 75 89 76 - #define VK_TRACE_MARKER() U_TRACE_FUNC(vk) 77 - #define VK_TRACE_IDENT(IDENT) U_TRACE_IDENT(vk, IDENT) 78 - #define VK_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(vk, IDENT) 90 + #define COLOR_TRACE_MARKER(COLOR) U_TRACE_FUNC_COLOR(color, COLOR) 91 + #define COLOR_TRACE_IDENT(IDENT, COLOR) U_TRACE_IDENT_COLOR(color, IDENT, COLOR) 92 + #define COLOR_TRACE_BEGIN(IDENT, COLOR) U_TRACE_BEGIN_COLOR(color, IDENT, COLOR) 93 + #define COLOR_TRACE_END(IDENT) U_TRACE_END(color, IDENT) 94 + 95 + #define VK_TRACE_MARKER() U_TRACE_FUNC_COLOR(vk, 0xffffff) 96 + #define VK_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(vk, IDENT, 0xffffff) 97 + #define VK_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(vk, IDENT, 0xffffff) 79 98 #define VK_TRACE_END(IDENT) U_TRACE_END(vk, IDENT) 80 99 81 - #define XRT_TRACE_MARKER() U_TRACE_FUNC(xrt) 82 - #define XRT_TRACE_IDENT(IDENT) U_TRACE_IDENT(xrt, IDENT) 83 - #define XRT_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(xrt, IDENT) 100 + #define XRT_TRACE_MARKER() U_TRACE_FUNC_COLOR(xrt, 0x708090) 101 + #define XRT_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(xrt, IDENT, 0x708090) 102 + #define XRT_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(xrt, IDENT, 0x708090) 84 103 #define XRT_TRACE_END(IDENT) U_TRACE_END(xrt, IDENT) 85 104 86 - #define DRV_TRACE_MARKER() U_TRACE_FUNC(drv) 87 - #define DRV_TRACE_IDENT(IDENT) U_TRACE_IDENT(drv, IDENT) 88 - #define DRV_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(drv, IDENT) 105 + #define DRV_TRACE_MARKER() U_TRACE_FUNC_COLOR(drv, 0x000080) 106 + #define DRV_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(drv, IDENT, 0x000080) 107 + #define DRV_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(drv, IDENT, 0x000080) 89 108 #define DRV_TRACE_END(IDENT) U_TRACE_END(drv, IDENT) 90 109 91 - #define IPC_TRACE_MARKER() U_TRACE_FUNC(ipc) 92 - #define IPC_TRACE_IDENT(IDENT) U_TRACE_IDENT(ipc, IDENT) 93 - #define IPC_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(ipc, IDENT) 110 + #define IPC_TRACE_MARKER() U_TRACE_FUNC_COLOR(ipc, 0x87cefa) 111 + #define IPC_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(ipc, IDENT, 0x87cefa) 112 + #define IPC_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(ipc, IDENT, 0x87cefa) 94 113 #define IPC_TRACE_END(IDENT) U_TRACE_END(ipc, IDENT) 95 114 96 - #define OXR_TRACE_MARKER() U_TRACE_FUNC(oxr) 97 - #define OXR_TRACE_IDENT(IDENT) U_TRACE_IDENT(oxr, IDENT) 98 - #define OXR_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(oxr, IDENT) 99 - #define OXR_TRACE_END(IDENT) U_TRACE_END(oxr, IDENT) 115 + #define OXR_TRACE_MARKER() U_TRACE_FUNC_COLOR(oxr, 0x7fffd4) 116 + #define OXR_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(oxr, IDENT, 0x7fffd4) 117 + #define OXR_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(oxr, IDENT, 0x7fffd4) 118 + #define OXR_TRACE_END(IDENT) U_TRACE_END(oxr, IDENT, 0x7fffd4) 100 119 101 - #define COMP_TRACE_MARKER() U_TRACE_FUNC(comp) 102 - #define COMP_TRACE_IDENT(IDENT) U_TRACE_IDENT(comp, IDENT) 103 - #define COMP_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(comp, IDENT) 120 + #define COMP_TRACE_MARKER() U_TRACE_FUNC_COLOR(comp, 0x00ff00) 121 + #define COMP_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(comp, IDENT, 0x00ff00) 122 + #define COMP_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(comp, IDENT, 0x00ff00) 104 123 #define COMP_TRACE_END(IDENT) U_TRACE_END(comp, IDENT) 105 124 106 - #define SINK_TRACE_MARKER() U_TRACE_FUNC(sink) 107 - #define SINK_TRACE_IDENT(IDENT) U_TRACE_IDENT(sink, IDENT) 108 - #define SINK_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(sink, IDENT) 125 + #define SINK_TRACE_MARKER() U_TRACE_FUNC_COLOR(sink, 0xffa500) 126 + #define SINK_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(sink, IDENT, 0xffa500) 127 + #define SINK_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(sink, IDENT, 0xffa500) 109 128 #define SINK_TRACE_END(IDENT) U_TRACE_END(sink, IDENT) 110 129 111 - #define TRACK_TRACE_MARKER() U_TRACE_FUNC(track) 112 - #define TRACK_TRACE_IDENT(IDENT) U_TRACE_IDENT(track, IDENT) 113 - #define TRACK_TRACE_BEGIN(IDENT) U_TRACE_BEGIN(track, IDENT) 114 - #define TRACK_TRACE_END(IDENT) U_TRACE_END(track, IDENT) 130 + #define TRACK_TRACE_MARKER() U_TRACE_FUNC_COLOR(track, 0xff0000) 131 + #define TRACK_TRACE_IDENT(IDENT) U_TRACE_IDENT_COLOR(track, IDENT, 0xff0000) 132 + #define TRACK_TRACE_BEGIN(IDENT) U_TRACE_BEGIN_COLOR(track, IDENT, 0xff0000) 133 + #define TRACK_TRACE_END(IDENT) U_TRACE_END(track, IDENT, 0xff0000) 115 134 116 135 117 136 /* ··· 183 202 // Different wrappers for different cases. 184 203 #ifdef __cplusplus 185 204 205 + #define U_TRACE_FUNC_COLOR(CATEGORY, COLOR) ZoneScopedC(COLOR) 206 + 186 207 #define U_TRACE_FUNC(CATEGORY) ZoneScoped 208 + 209 + #define U_TRACE_IDENT_COLOR(CATEGORY, IDENT, COLOR) ZoneScopedNC(#IDENT, COLOR) 187 210 188 211 #define U_TRACE_IDENT(CATEGORY, IDENT) ZoneScopedN(#IDENT) 189 212 ··· 195 218 TracyCZoneEnd(*ctx_ptr); 196 219 } 197 220 221 + #define U_TRACE_FUNC_COLOR(CATEGORY, COLOR) \ 222 + static const struct ___tracy_source_location_data __func_loc = { \ 223 + NULL, __func__, __FILE__, (uint32_t)__LINE__, COLOR, \ 224 + }; \ 225 + TracyCZoneCtx __attribute__((cleanup(u_trace_scope_cleanup))) ctx = \ 226 + ___tracy_emit_zone_begin(&__func_loc, true); \ 227 + (void)ctx 228 + 229 + 198 230 #define U_TRACE_FUNC(CATEGORY) \ 199 231 static const struct ___tracy_source_location_data __func_loc = { \ 200 232 NULL, __func__, __FILE__, (uint32_t)__LINE__, 0, \ ··· 203 235 ___tracy_emit_zone_begin(&__func_loc, true); \ 204 236 (void)ctx 205 237 238 + #define U_TRACE_IDENT_COLOR(CATEGORY, IDENT, COLOR) \ 239 + static const struct ___tracy_source_location_data __##IDENT##_loc = { \ 240 + #IDENT, __func__, __FILE__, (uint32_t)__LINE__, COLOR, \ 241 + }; \ 242 + TracyCZoneCtx __attribute__((cleanup(u_trace_scope_cleanup))) ctx##IDENT = \ 243 + ___tracy_emit_zone_begin(&__##IDENT##_loc, true); \ 244 + (void)ctx##IDENT 245 + 206 246 #define U_TRACE_IDENT(CATEGORY, IDENT) \ 207 247 static const struct ___tracy_source_location_data __##IDENT##_loc = { \ 208 248 #IDENT, __func__, __FILE__, (uint32_t)__LINE__, 0, \ ··· 212 252 (void)ctx##IDENT 213 253 214 254 #else // !XRT_OS_WINDOWS && !__cplusplus 255 + #define U_TRACE_FUNC_COLOR(CATEGORY, COLOR) \ 256 + do { \ 257 + } while (false) 215 258 216 259 #define U_TRACE_FUNC(CATEGORY) \ 260 + do { \ 261 + } while (false) 262 + 263 + #define U_TRACE_IDENT_COLOR(CATEGORY, IDENT, COLOR) \ 217 264 do { \ 218 265 } while (false) 219 266 ··· 224 271 #endif // !XRT_OS_WINDOWS && !__cplusplus 225 272 226 273 #define U_TRACE_BEGIN(CATEGORY, IDENT) TracyCZoneN(__trace_##IDENT, #IDENT, true) 274 + #define U_TRACE_BEGIN_COLOR(CATEGORY, IDENT, COLOR) TracyCZoneNC(__trace_##IDENT, #IDENT, COLOR, true) 227 275 #define U_TRACE_END(CATEGORY, IDENT) TracyCZoneEnd(__trace_##IDENT) 228 276 229 277 #define U_TRACE_EVENT_BEGIN_ON_TRACK(CATEGORY, TRACK, TIME, NAME) \