From 6b98a57b8e6eb588a4132274881bd64782bcc868 Mon Sep 17 00:00:00 2001 From: Lukas Tenbrink Date: Wed, 12 Nov 2025 20:51:04 +0100 Subject: [PATCH] Fix tracy implementation when no callstack sampling is desired. --- core/profiling/profiling.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/profiling/profiling.h b/core/profiling/profiling.h index 93af70ea4b6..993b36c8cdb 100644 --- a/core/profiling/profiling.h +++ b/core/profiling/profiling.h @@ -39,19 +39,22 @@ #define TRACY_ENABLE #include -#ifndef TRACY_CALLSTACK -#define TRACY_CALLSTACK 0 -#endif - // Define tracing macros. #define GodotProfileFrameMark FrameMark #define GodotProfileZone(m_zone_name) ZoneScopedN(m_zone_name) #define GodotProfileZoneGroupedFirst(m_group_name, m_zone_name) ZoneNamedN(__godot_tracy_zone_##m_group_name, m_zone_name, true) #define GodotProfileZoneGroupedEndEarly(m_group_name, m_zone_name) __godot_tracy_zone_##m_group_name.~ScopedZone(); +#ifndef TRACY_CALLSTACK +#define GodotProfileZoneGrouped(m_group_name, m_zone_name) \ + GodotProfileZoneGroupedEndEarly(m_group_name, m_zone_name); \ + static constexpr tracy::SourceLocationData TracyConcat(__tracy_source_location, TracyLine){ m_zone_name, TracyFunction, TracyFile, (uint32_t)TracyLine, 0 }; \ + new (&__godot_tracy_zone_##m_group_name) tracy::ScopedZone(&TracyConcat(__tracy_source_location, TracyLine), true) +#else #define GodotProfileZoneGrouped(m_group_name, m_zone_name) \ GodotProfileZoneGroupedEndEarly(m_group_name, m_zone_name); \ static constexpr tracy::SourceLocationData TracyConcat(__tracy_source_location, TracyLine){ m_zone_name, TracyFunction, TracyFile, (uint32_t)TracyLine, 0 }; \ new (&__godot_tracy_zone_##m_group_name) tracy::ScopedZone(&TracyConcat(__tracy_source_location, TracyLine), TRACY_CALLSTACK, true) +#endif void godot_init_profiler();