465 Commits

Author SHA1 Message Date
ionut matasaru
982de274e5 [Insights] Added validation and warning log message for trace anaysis decoding a packet that is empty (ex: for cases when runtime code fails to encode a large packet). Trace analysis is allowed to continue when encounters an empty trace packet.
#jira UE-222444
#rb Johan.Berg

[CL 35824350 by ionut matasaru in ue5-main branch]
2024-08-27 10:16:00 -04:00
ionut matasaru
93f666ee28 [Insights]
- 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]
2024-08-01 10:28:39 -04:00
steve robb
f40be2d759 Fixed some 'deprecated' FString usage.
#rb james.hopkin

[CL 34603027 by steve robb in ue5-main branch]
2024-06-24 09:25:50 -04:00
joe kirchoff
748e7aac60 UnrealBuildTool: Auto disable SharedPCH if a module is compiling using a CppStandard older than the engine
#rnx
#jira UE-207533

[CL 33955046 by joe kirchoff in ue5-main branch]
2024-05-28 17:53:24 -04:00
johan berg
4decca411b Add debug mode to serialized trace packets
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]
2024-05-13 04:09:59 -04:00
ionut matasaru
188da66101 [Insights] TraceAnalysis: Fixed assert for late connect sessions (additional events for serial gaps not being accounted when computing total available parsed events).
#jira none
#rb Ionut.Matasaru
#fyi Johan.Berg

[CL 33066793 by ionut matasaru in ue5-main branch]
2024-04-18 05:29:52 -04:00
ionut matasaru
097acf805b [Insights]
- 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]
2024-04-17 07:51:52 -04:00
johan berg
a4bd86be2a Remove inactive trace store code
#rb ionut.matasaru

[CL 32994926 by johan berg in ue5-main branch]
2024-04-16 04:30:28 -04:00
johan berg
14f81e2f6b Fix narrowing of store directory string
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]
2024-03-28 07:44:55 -04:00
josh adams
1490a189af - Split Mac target/deployment versions to have editor and non-editor versions
- 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]
2024-02-20 13:42:11 -05:00
ionut matasaru
71fe6bd0a5 [Insights] Fixed constness for FStoreClient.
#rb Johan.Berg

[CL 31426424 by ionut matasaru in ue5-main branch]
2024-02-13 10:05:14 -05:00
ionut matasaru
a8078ce4c2 [Insights] Updated limits for detecting too much data accumulated by trace analysis (number of parsed events).
#rb Johan.Berg

[CL 30770758 by ionut matasaru in ue5-main branch]
2024-01-22 09:24:24 -05:00
steve robb
f029468598 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30729174 by steve robb in ue5-main branch]
2024-01-19 16:41:35 -05:00
johan berg
45d4196f9e Add store client functionality to set sponsor mode
#rb ionut.matasaru

[CL 30316870 by johan berg in ue5-main branch]
2023-12-14 06:35:38 -05:00
ionut matasaru
231006c9b4 [Insights]
- 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]
2023-10-31 04:07:11 -04:00
joe kirchoff
be5805fdca Fix some comments that give the wrong instructions when a module is forcing cpp17
#rnx

[CL 28690858 by joe kirchoff in ue5-main branch]
2023-10-11 19:24:34 -04:00
joe kirchoff
540c318bfa Disable PCH for remaining C++17 modules to prevent making PCH variants
#rnx

[CL 28482531 by joe kirchoff in ue5-main branch]
2023-10-04 19:25:49 -04:00
ionut matasaru
119dbc1a08 Enabled UnsafeTypeCast warnings as errors in Trace/Insights related modules (UnrealInsights, TraceAnalysis, TraceServices, TraceDataFiltering, TraceUtilities, EditorTraceUtilities).
Fixed conversion warnings in TraceAnalysis and in TraceServices modules.

#rb Catalin.Dragoiu

[CL 28339045 by ionut matasaru in ue5-main branch]
2023-09-29 07:22:52 -04:00
johan berg
c45a777582 Display store server version in Unreal Insights
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]
2023-09-01 10:37:36 -04:00
ionut matasaru
0f0d444fd3 [Insights] Warkaround for corrupted traces with missing sync events. Analysis will not stop anymore when buffering more than 512 MiB of trace data. Instead, it will emit an error and then it will start to skip the missing serial numbers.
#rb Catalin.Dragoiu
[FYI] Johan.Berg

[CL 26700510 by ionut matasaru in ue5-main branch]
2023-07-31 04:33:40 -04:00
Johan Berg
377aa7c246 Remove usage of MessageLog in analysis.
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]
2023-06-19 07:17:37 -04:00
Johan Berg
2f814b56e4 Allow swapping of watch and store directory.
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]
2023-06-14 10:11:28 -04:00
bryan sefcik
5b6c78e627 Removed monolothic header includes.
#preflight 647a50f58417d79259bf0677
#jira

[CL 25775811 by bryan sefcik in ue5-main branch]
2023-06-02 18:21:36 -04:00
Johan Berg
2a0a9d8ec7 Disable internal trace store for all platforms.
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]
2023-05-29 08:52:39 -04:00
Johan Berg
5a5f2a5480 Use new trace functionality to correctly identify live session from own process
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]
2023-05-17 09:17:55 -04:00