@@ -16,6 +16,13 @@ static inline const char *gnu_basename(const char *path)
1616 return base ? base + 1 : path ;
1717}
1818
19+ #ifdef USE_TRACY
20+ typedef struct {
21+ _Atomic (int64_t ) val ;
22+ char * name ;
23+ } jl_tracy_counter_t ;
24+ #endif
25+
1926#ifdef __cplusplus
2027extern "C" {
2128#endif
@@ -425,6 +432,12 @@ struct jl_timing_suspend_cpp_t {
425432#define _ITTAPI_COUNTER_MEMBER
426433#endif
427434
435+ #ifdef USE_TRACY
436+ # define _TRACY_COUNTER_MEMBER jl_tracy_counter_t tracy_counter;
437+ # else
438+ # define _TRACY_COUNTER_MEMBER
439+ #endif
440+
428441#ifdef USE_TIMING_COUNTS
429442#define _COUNTS_MEMBER _Atomic(uint64_t) basic_counter;
430443#else
@@ -433,6 +446,7 @@ struct jl_timing_suspend_cpp_t {
433446
434447typedef struct {
435448 _ITTAPI_COUNTER_MEMBER
449+ _TRACY_COUNTER_MEMBER
436450 _COUNTS_MEMBER
437451} jl_timing_counter_t ;
438452
@@ -442,6 +456,11 @@ static inline void jl_timing_counter_inc(int counter, uint64_t val) JL_NOTSAFEPO
442456#ifdef USE_ITTAPI
443457 __itt_counter_inc_delta (jl_timing_counters [counter ].ittapi_counter , val );
444458#endif
459+ #ifdef USE_TRACY
460+ jl_tracy_counter_t * tracy_counter = & jl_timing_counters [counter ].tracy_counter ;
461+ uint64_t oldval = jl_atomic_fetch_add_relaxed (& tracy_counter -> val , val );
462+ TracyCPlotI (tracy_counter -> name , oldval + val );
463+ #endif
445464#ifdef USE_TIMING_COUNTS
446465 jl_atomic_fetch_add_relaxed (& jl_timing_counters [counter ].basic_counter , val );
447466#endif
@@ -451,6 +470,11 @@ static inline void jl_timing_counter_dec(int counter, uint64_t val) JL_NOTSAFEPO
451470#ifdef USE_ITTAPI
452471 __itt_counter_dec_delta (jl_timing_counters [counter ].ittapi_counter , val );
453472#endif
473+ #ifdef USE_TRACY
474+ jl_tracy_counter_t * tracy_counter = & jl_timing_counters [counter ].tracy_counter ;
475+ uint64_t oldval = jl_atomic_fetch_add_relaxed (& tracy_counter -> val , - val );
476+ TracyCPlotI (tracy_counter -> name , oldval - val );
477+ #endif
454478#ifdef USE_TIMING_COUNTS
455479 jl_atomic_fetch_add_relaxed (& jl_timing_counters [counter ].basic_counter , - (int64_t )val );
456480#endif
0 commit comments