- Added new TraceInsightsFrontend module. Moved all functionality of Unreal Insights Frontend (i.e. Session Browser) from TraceInsights module to this new module.
- Split the functional tests between TraceInsightsFrontend and TraceInsights. Also updated some of the tests to reduce dependency to InsightsManager. Tests moved to TraceInsightsFrontend module:
* "System.Insights.Hub.MemoryInsights" (MemoryInsightsTests.cpp)
* "System.Insights.Hub.SessionBrowser" (TraceStoreWindowTests.cpp)
* "System.Insights.Hub.UnrealTraceServer.Starting" (UnrealTraceServerTests.cpp)
- TraceInsights: Updated InsightsStyle to inherit the InsightsCoreStyle (from TraceInsightsCore module). Moved more resources to FInsightsCoreStyle. Removed duplicates between TraceInsights and TraceInsightsCore modules. Removed "WhiteBrush" from FInsightsStyle (can be used the one from FAppStyle / FCoreStyle instead).
- Moved and renamed FTraceServerControl from "Insights/Widgets/STraceServerControl.h" to "InsightsFrontend/StoreService/TraceServerControl.h". TraceUtilities now depends on TraceInsightsFrontend module (instead of TraceInsights module).
- Added FStoreConnection in TraceAnalysis module. It manages a connection to a trace server (FStoreClient + critical section). This removes duplicated code between FInsightsManager (TraceInsights module) and in STraceStoreWindows (TraceInsightsFrontend module).
- Moved MessageDialogUtils.h/.cpp from TraceInsights to TraceInsightsCore module (InsightsCore/Common/MessageDialogUtils.h).
- Moved OpenUnrealInsights() into a utility static class FMiscUtils in TraceInsightsCore module. This removes some of the dependencies to InsightsManager.
- Moved/renamed Insights::FEventNameFilterValueConverter to UE::Insights::TimingProfiler::FTimerNameFilterValueConverter (currently unused).
- Moved "Version.h" to TraceInsightsCore module ("InsightsCore/Version.h").
- Moved more types into UE::Insights namespace, in TraceInsights module.
- Changed UnrealInsights program to either load the TraceInsights module or the TraceInsightsFrontend module depending on the required mode to run (based on command line arguments).
- Updated UnrealInsights program to detect "single instance" of Unreal Insights Frontend window/process much sooner during initialization.
- Temporary disabled "Import Table ..." and "Diff Tables ..." functionality in Unreal Insights Frontend / Trace Store window (code switched off by UE_INSIGHTS_TABLE_IMPORT_TOOL_ENABLED in STraceStoreWindow.cpp).
#rb Catalin.Dragoiu
[CL 35243915 by ionut matasaru in ue5-main branch]
By setting UE_TRACE_PACKET_VERIFICATION this mode embeds a serial numbers after each packet. Note that this makes analysis incompatible with traces recorded without this mode. Strictly useful for investigating potential package loss.
#rb ionut.matasaru
[CL 33598542 by johan berg in ue5-main branch]
- TraceAnalysis: Added debug functionality to allow recover data from traces with missing packages / missing serial sync events (code disabled by default).
- TraceAnalysis: Added more detailed debug info for per thread buffers' data size (parsed data size + remaining data size).
- TraceAnalysis: Added value of uncompressed data size not processed at end of analysis in the warning message.
- TraceAnalysis: Fixed debug values re number of "parsed events" to include the Terminal events (to match with total number of "parsed events").
- TraceAnalysis: Fixed few comments in analysis engine code.
#jira none
#rb Johan.Berg
[CL 33033123 by ionut matasaru in ue5-main branch]
At one point it was assumed that store directory would only ever be limited to ANSI. The selected directory string was narrowed before being sent to UTS.
#jira UE-210562
#rb ionut.matasaru
[CL 32573988 by johan berg in ue5-main branch]
- Moved them into SDK.json
- Fixed up some deprecation warnings when tarrgeting macOS 13
- IOS is still using old .ini project setting method
#rb adam.kinge, carl.lloyd, zack.neyland
[CL 31651333 by josh adams in ue5-main branch]
- TraceAnalysis: Added debug functionality for trace transport and trace protocol analysis. See TraceAnalysisDebug.h for the available debug options (UE_TRACE_ANALYSIS_DEBUG_API, UE_TRACE_ANALYSIS_DEBUG, UE_TRACE_ANALYSIS_DEBUG_LOG, UE_TRACE_ANALYSIS_DEBUG_LOG_IMPL, UE_TRACE_ANALYSIS_DEBUG_LEVEL).
- TraceAnalysis: Changed the limit for accumulated too much data on a single thread from 512 MiB to 2000 MB. Also implemented better code to skip serials when limit is encountered.
- TraceAnalysis: Implemented workaround for corrupted traces (events with aux blocks missing the "aux terminal").
- TraceAnalysis: Fixed EventData.GetArray<>() (to be safe to be called multiple times).
#rb Johan.Berg, Catalin.Dragoiu
[FYI] Martin.Ridgers
[CL 29268256 by ionut matasaru in ue5-main branch]
Uses the version enpoint in Unreal Trace Server to display the server version in the connection tooltip.
#rb ionut.matasaru
[CL 27555132 by johan berg in ue5-main branch]
Usage of MessageLog in non-ui threads is tricky and need to be carefully managed to avoid flushing memory on the wrong thread. With this change direct usage of MessageLog in the analysis engine is removed and replaced with a callback system which allows the user of TraceAnalysis to implement display of the messages themselves. In the case of InsightsManager this means queuing up the messages in analysis session and regularly polled from the UI thread.
#rb ionut.matasaru
#jira UE-185528
[CL 26086861 by Johan Berg in ue5-main branch]
Previously setting the store directory to the same directory as a watch directory was disabled. With this change the selected directory when set as store it is also automatically removed as watch directory.
#rb ionut.matasaru
#jira UE-184965
[CL 25977468 by Johan Berg in ue5-main branch]
Standalone servers have been submitted for all desktop platform. Disable hosted trace store everywhere and enable launching of the server.
#rb ionut.matasaru
#preflight 64749db03535a898de7c1983
[CL 25663303 by Johan Berg in ue5-main branch]
Previously executing "Open current session" in the Insights launcher used the last activated live session, which might be incorrect if the user has multiple live session at the same time. This change uses new functionality in TraceLog which adds session and trace guid fields as metadata and queries the server for the current ongoing session.
#rb catalin.dragui
#jira UE-178144
#preflight 6464ca39fa4cf4165130bce9
[CL 25505766 by Johan Berg in ue5-main branch]