diff --git a/profiler/src/profiler/TracyView_ZoneInfo.cpp b/profiler/src/profiler/TracyView_ZoneInfo.cpp index 05b34666..7fc048e8 100644 --- a/profiler/src/profiler/TracyView_ZoneInfo.cpp +++ b/profiler/src/profiler/TracyView_ZoneInfo.cpp @@ -1888,6 +1888,7 @@ void View::ZoneTooltip( const ZoneEvent& ev ) TextFocused( "Running state regions:", RealToString( cnt ) ); } } + bool callstackDone = false; if( m_worker.HasZoneExtra( ev ) ) { auto& extra = m_worker.GetZoneExtra( ev ); @@ -1895,7 +1896,24 @@ void View::ZoneTooltip( const ZoneEvent& ev ) { ImGui::Separator(); DrawCallstackCalls( extra.callstack.Val(), 6 ); + callstackDone = true; } + } + if( !callstackDone ) + { + auto cs = ReconstructZoneCallstack( ev ); + if( !cs.empty() ) + { + ImGui::Separator(); + TextDisabledUnformatted( ICON_FA_WAND_SPARKLES ); + ImGui::SameLine(); + DrawCallstackCalls( cs.data(), cs.size(), 6 ); + } + } + + if( m_worker.HasZoneExtra( ev ) ) + { + auto& extra = m_worker.GetZoneExtra( ev ); if( extra.text.Active() ) { ImGui::Separator();