@@ -82,11 +82,86 @@ inline const char* leak_name(const std::string& name) {
8282inline void set_thread_name_and_order (const std::string& name, const int32_t index) {
8383 const int32_t order = tracy_detail::lane_order::thread + index;
8484 assert (order <= static_cast <int32_t >(tracy_detail::lane_order::thread_max));
85- :: tracy::SetThreadNameWithHint (leak_name(name), order);
85+ tracy::SetThreadNameWithHint (leak_name (name), order);
8686}
8787
8888} // namespace celerity::detail::tracy_detail
8989
90+ namespace celerity ::detail {
91+
92+ enum class trace_color : std::underlying_type_t <tracy::Color::ColorType> {
93+ generic_red = tracy::Color::Red,
94+ generic_green = tracy::Color::Green,
95+ generic_blue = tracy::Color::Blue,
96+ generic_yellow = tracy::Color::Yellow,
97+
98+ buffer_ctor = tracy::Color::DarkSlateBlue,
99+ buffer_dtor = tracy::Color::DarkCyan,
100+
101+ cuda_memcpy = tracy::Color::ForestGreen,
102+ cuda_memcpy_1d = cuda_memcpy,
103+ cuda_memcpy_2d = cuda_memcpy,
104+ cuda_memcpy_3d = cuda_memcpy,
105+ cuda_record_event = tracy::Color::ForestGreen,
106+
107+ distr_queue_ctor = tracy::Color::DarkSlateBlue,
108+ distr_queue_dtor = tracy::Color::DarkCyan,
109+ distr_queue_slow_full_sync = tracy::Color::Red2,
110+ distr_queue_submit = tracy::Color::Orange3,
111+
112+ executor_fetch = tracy::Color::Gray,
113+ executor_issue = tracy::Color::Blue,
114+ executor_issue_copy = tracy::Color::Green4,
115+ executor_issue_device_kernel = tracy::Color::Yellow2,
116+ executor_make_accessor_info = tracy::Color::Magenta3,
117+ executor_oob_check = tracy::Color::Red,
118+ executor_oob_init = executor_oob_check,
119+ executor_retire = tracy::Color::Brown,
120+ executor_starve = tracy::Color::DarkSlateGray,
121+
122+ host_object_ctor = tracy::Color::DarkSlateBlue,
123+ host_object_dtor = tracy::Color::DarkCyan,
124+
125+ iggen_allocate = tracy::Color::Teal,
126+ iggen_anticipate = iggen_allocate,
127+ iggen_coherence = tracy::Color::Red2,
128+ iggen_launch_kernel = tracy::Color::Blue2,
129+ iggen_perform_buffer_access = tracy::Color::Red3,
130+ iggen_satisfy_buffer_requirements = tracy::Color::ForestGreen,
131+ iggen_split_task = tracy::Color::Maroon,
132+
133+ mpi_finalize = tracy::Color::LightSkyBlue,
134+ mpi_init = tracy::Color::LightSkyBlue,
135+
136+ out_of_order_engine_assign = tracy::Color::Blue3,
137+ out_of_order_engine_complete = tracy::Color::Blue3,
138+ out_of_order_engine_submit = tracy::Color::Blue3,
139+
140+ queue_ctor = distr_queue_ctor,
141+ queue_dtor = distr_queue_dtor,
142+ queue_fence = tracy::Color::Green2,
143+ queue_submit = distr_queue_submit,
144+ queue_wait = distr_queue_slow_full_sync,
145+
146+ runtime_select_devices = tracy::Color::PaleVioletRed,
147+ runtime_shutdown = tracy::Color::DimGray,
148+ runtime_startup = tracy::Color::DarkGray,
149+
150+ scheduler_buffer_created = tracy::Color::DarkGreen,
151+ scheduler_buffer_destroyed = scheduler_buffer_created,
152+ scheduler_buffer_name_changed = tracy::Color::DarkGreen,
153+ scheduler_build_task = tracy::Color::WebMaroon,
154+ scheduler_compile_command = tracy::Color::MidnightBlue,
155+ scheduler_host_object_created = tracy::Color::DarkGreen,
156+ scheduler_host_object_destroyed = scheduler_host_object_created,
157+ scheduler_prune = tracy::Color::Gray,
158+
159+ sycl_init = tracy::Color::Orange2,
160+ sycl_submit = tracy::Color::Orange2,
161+ };
162+
163+ }
164+
90165#define CELERITY_DETAIL_IF_TRACY_SUPPORTED (...) __VA_ARGS__
91166
92167#else
@@ -100,7 +175,9 @@ inline void set_thread_name_and_order(const std::string& name, const int32_t ind
100175#define CELERITY_DETAIL_IF_TRACY_ENABLED_FULL (...) CELERITY_DETAIL_IF_TRACY_SUPPORTED(if (::celerity::detail::tracy_detail::is_enabled_full()) { __VA_ARGS__; })
101176
102177#define CELERITY_DETAIL_TRACY_ZONE_SCOPED (TAG, COLOR_NAME ) \
103- CELERITY_DETAIL_IF_TRACY_SUPPORTED (ZoneNamedNC(___tracy_scoped_zone, TAG, ::tracy::Color::COLOR_NAME, ::celerity::detail::tracy_detail::is_enabled()))
178+ CELERITY_DETAIL_IF_TRACY_SUPPORTED (ZoneNamedNC(___tracy_scoped_zone, TAG, \
179+ static_cast <std::underlying_type_t <::celerity::detail::trace_color>>(::celerity::detail::trace_color::COLOR_NAME), \
180+ ::celerity::detail::tracy_detail::is_enabled()))
104181
105182#define CELERITY_DETAIL_TRACY_ZONE_NAME (...) \
106183 CELERITY_DETAIL_IF_TRACY_ENABLED_FULL (::celerity::detail::tracy_detail::apply_string([&](const auto & n) { ZoneName (n.data (), n.size ()); }, __VA_ARGS__))
0 commit comments