diff --git a/profiler/src/profiler/TracyView.hpp b/profiler/src/profiler/TracyView.hpp index 2323fb51..9a2f95c9 100644 --- a/profiler/src/profiler/TracyView.hpp +++ b/profiler/src/profiler/TracyView.hpp @@ -511,6 +511,7 @@ private: bool m_statSampleTime = true; int m_statMode = 0; int m_flameMode = 0; + bool m_flameSort = false; int m_statSampleLocation = 2; bool m_statHideUnknown = true; bool m_showAllSymbols = false; diff --git a/profiler/src/profiler/TracyView_FlameGraph.cpp b/profiler/src/profiler/TracyView_FlameGraph.cpp index 597b63df..4a31f1a9 100644 --- a/profiler/src/profiler/TracyView_FlameGraph.cpp +++ b/profiler/src/profiler/TracyView_FlameGraph.cpp @@ -291,6 +291,12 @@ void View::DrawFlameGraph() ImGui::RadioButton( ICON_FA_EYE_DROPPER " Sampling", &m_flameMode, 1 ); } + ImGui::SameLine(); + ImGui::SeparatorEx( ImGuiSeparatorFlags_Vertical ); + ImGui::SameLine(); + + ImGui::Checkbox( ICON_FA_ARROW_UP_WIDE_SHORT " Sort by time", &m_flameSort ); + auto expand = ImGui::TreeNode( ICON_FA_SHUFFLE " Visible threads:" ); ImGui::SameLine(); size_t visibleThreads = 0; @@ -364,7 +370,8 @@ void View::DrawFlameGraph() if( FlameGraphThread( thread->id ) ) BuildFlameGraph( m_worker, data, thread->samples ); } } - SortFlameGraph( data ); + + if( m_flameSort ) SortFlameGraph( data ); int64_t zsz = 0; for( auto& v : data ) zsz += v.time;