Description

From Customer:

UE 5.3 update broke Unreal Insights adding GPU timers into graph tracks.

Debugging the code and cross checking with github/p4v I guess it broke in this revision:

Timer graphs now gather data from visible tracks only and auto update when track visiblity changes
[CL 26156384 by catalin dragoiu in 5.3 branch]
It seems that the code only searches CPU tracks as a possible source data for graph points and so GPU timer never succeeds to find any of its data.

In function:

FTimingGraphTrack::UpdateTimerSeries

...

GetVisibleTimelineIndexes(Timelines);

this internally calls FThreadTimingSharedState::GetVisibleTimelineIndexes which only returns CPU threads source data from member FThreadTimingSharedState::CpuTracks.



We checked your main branch P4V and think we don't see a fix for that yet.

Can you check this out please ?

Regression tested in: //UE5/Release-5.2 - 26001984

Steps to Reproduce
  1. Have a trace file with GPU timers information
    • Run Editor or Package with -tracehost=localhost -trace=default
  2. Open Unreal Insights Session browser
  3. Open trace file and wait for analysis to complete
  4. Focus Timers Panel
  5. Double Click any GPU Timer with count >0 and take note of the timer name
    • I used NaniteReadback and EditorPrimitives
    • Expected Results 1:
      • Main Graph shows graph for the timer that was double clicked
      • Timer name has a colored box next to it with the same color that is depicted in the Main Graph for that timer
    • Actual Results 1:
      • Main Graph does not show graph for the timer that was double clicked
      • Timer name does has a colored box next to it
  6. Close the Timers Panel
  7. Re-open the Timers Panel
  8. Find your timer
  9. Double click your timer
    • Expected Results 2:
      • Main Graph still shows graph for the timer that was double clicked
      • Timer name has a colored box next to it with the same color that is depicted in the Main Graph for that timer
    • Actual Results 2:
      • Main Graph does not show graph for the timer that was double clicked
      • Timer name does not have a colored box next to it
      • An Ensure shows in UnrealInsights_2.log file:
        Ensure condition failed: NumGraphs > 0  [File:E:\P4\Release\5.3\Engine\Source\Developer\TraceInsights\Private\Insights\ViewModels\TimerNode.h] [Line: 106]
        
  10. Double click your timer again
    • Expected Results 3:
      • Main Graph shows graph for the timer that was double clicked
      • Timer name has a colored box next to it with the same color that is depicted in the Main Graph for that timer
    • Actual Results 3:
      • Main Graph does not show graph for the timer that was double clicked
      • Timer name does NOT have a colored box next to it with the same color that is depicted in the Main Graph
Callstack
0x00007fffc1d4c82b UnrealInsights-TraceInsights.dll!STimersView::ToggleGraphSeries() [E:\P4\Release\5.3\Engine\Source\Developer\TraceInsights\Private\Insights\Widgets\STimersView.cpp:2534]
0x00007fffc1d4d19e UnrealInsights-TraceInsights.dll!STimersView::ToggleTimingViewMainGraphEventSeries() [E:\P4\Release\5.3\Engine\Source\Developer\TraceInsights\Private\Insights\Widgets\STimersView.cpp:2570]
0x00007fffc1d617ba UnrealInsights-TraceInsights.dll!STimersView::TreeView_OnMouseButtonDoubleClick() [E:\P4\Release\5.3\Engine\Source\Developer\TraceInsights\Private\Insights\Widgets\STimersView.cpp:1438]
0x00007fffc1c6d460 UnrealInsights-TraceInsights.dll!TBaseSPMethodDelegateInstance<0,STimersView,1,void __cdecl(TSharedPtr<FTimerNode,1>),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [E:\P4\Release\5.3\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:300]
0x00007fffc1b71362 UnrealInsights-TraceInsights.dll!TDelegate<void __cdecl(TSharedPtr<FTimerNode,1>),FDefaultDelegateUserPolicy>::ExecuteIfBound<void,0>() [E:\P4\Release\5.3\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:570]
0x00007fffc1d0d149 UnrealInsights-TraceInsights.dll!SListView<TSharedPtr<FTimerNode,1> >::Private_OnItemDoubleClicked() [E:\P4\Release\5.3\Engine\Source\Runtime\Slate\Public\Widgets\Views\SListView.h:1122]
0x00007fffc1ce0f56 UnrealInsights-TraceInsights.dll!STableRow<TSharedPtr<FTimerNode,1> >::OnMouseButtonDoubleClick() [E:\P4\Release\5.3\Engine\Source\Runtime\Slate\Public\Widgets\Views\STableRow.h:423]
0x00007fffca3fddd8 UnrealInsights-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,`FSlateApplication::RoutePointerDoubleClickEvent'::`2'::<lambda_1> >() [E:\P4\Release\5.3\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:442
0x00007fffca45bae8 UnrealInsights-Slate.dll!FSlateApplication::RoutePointerDoubleClickEvent() [E:\P4\Release\5.3\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5700]
0x00007fffca44b6cf UnrealInsights-Slate.dll!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [E:\P4\Release\5.3\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5685]
0x00007fffca43fcda UnrealInsights-Slate.dll!FSlateApplication::OnMouseDoubleClick() [E:\P4\Release\5.3\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5648]
0x00007ff886152259 UnrealInsights-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage() [E:\P4\Release\5.3\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2235]
0x00007ff88613718f UnrealInsights-ApplicationCore.dll!FWindowsApplication::DeferMessage() [E:\P4\Release\5.3\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2738]
0x00007ff886154cc9 UnrealInsights-ApplicationCore.dll!FWindowsApplication::ProcessMessage() [E:\P4\Release\5.3\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:1907]
0x00007ff88612f7d3 UnrealInsights-ApplicationCore.dll!FWindowsApplication::AppWndProc() [E:\P4\Release\5.3\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:937]
0x00007ff8c2c7e858 USER32.dll!UnknownFunction []
0x00007ff8c2c7e299 USER32.dll!UnknownFunction []
0x00007ff886156099 UnrealInsights-ApplicationCore.dll!FWindowsApplication::PumpMessages() [E:\P4\Release\5.3\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2750]
0x00007ff7e8ad471b UnrealInsights.exe!FUserInterfaceCommand::Run() [E:\P4\Release\5.3\Engine\Source\Programs\UnrealInsights\Private\UserInterfaceCommand.cpp:217]
0x00007ff7e8ad65d2 UnrealInsights.exe!UnrealInsightsMain() [E:\P4\Release\5.3\Engine\Source\Programs\UnrealInsights\Private\UnrealInsightsMain.cpp:34]
0x00007ff7e8ad6854 UnrealInsights.exe!WinMain() [E:\P4\Release\5.3\Engine\Source\Programs\UnrealInsights\Private\Windows\WindowsUnrealInsightsMain.cpp:50]
0x00007ff7e8ad7ea6 UnrealInsights.exe!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
0x00007ff8c2f47344 KERNEL32.DLL!UnknownFunction []
0x00007ff8c4c626b1 ntdll.dll!UnknownFunction []

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-199179 in the post.

0
Login to Vote

Fixed
ComponentUE - Foundation - Insights
Affects Versions5.3
Target Fix5.4
Fix Commit29234774
Main Commit29234833
CreatedOct 27, 2023
ResolvedOct 31, 2023
UpdatedDec 1, 2023