Commit Graph

10309 Commits

Author SHA1 Message Date
Jeff Farris
c2c4f4ac98 Fixed CrashReportClientEditor compile error in unity builds.
#fyi Patrick.Laflamme

[CL 16326683 by Jeff Farris in ue5-main branch]
2021-05-14 00:48:14 -04:00
Patrick Laflamme
2e5316e1ca Generalized the Editor analytics summary session system to be usable/extendable by other apps.
Engine/Editor changes:

- Split the Editor summary session in two, one summary for the Engine properties and one for the Editor specific properties. Made it easy to extend the Engine summary to create other summaries.
- Made the summary sender as agnostics as possible of the keys it sends.
- Fixed the system wide lock contention between the process when persisting a session. (On problem caused by the lock is UE-114315).
- Fixed concurrent issue when saving the summary sessions on Linux/Mac
- Fixed performance issue when saving the summary session on Linux/Mac. This enable saving at higher frequency.
- Fixed cases where the same session summary is sent more than once.
- Fixed Windows registry key overflow that could happens if we accumulated too many sessions (in theory, this can happen)
- Made adding new properties to the summary easy and private to the implementation.
- Brought the Linux/Mac implementation closer to Windows implementation.
- Reduced memory allocation, especially when the session records a crash.
- Improved chances to send the summary non-delayed by allowing the Editor to send the reports if CRC died unexpectedly.
- Generalized the support to collect and aggregate analytics from helper processes. For example, CRC already collects analytics that is merged with the Editor summary as information supplement
- Reserved the disk space required to store the summary ahead of time to prevent failing later.
- Increased frequency at which the summary is persisted because saving the summary is more efficient. (About every 10 seconds rather than every minutes).
- Added unit tests

CrashReportClient changes:

- Created a 'session summary' from the CRC point of view to merge with the Editor summary.
- Moved analytics collection in a separated class to make the crash reporting code leaner and less noisy with all the analytics
- Merged the CRC diagnostic logger in the class collecting CRC analytics summary and make the diagnostic log a property in the summary.
- Collected analytics (on behalf of Editor) in a background thread because CRC main thread can be blocked collecting a crash, so it doesn't pay attention to other things
- Added MonitorBatteryLevel and MonitorOnACPower summary properties on Windows. Collected on CRC background thread (never blocked, so we reduce changes to miss the battery running out)
- Added MonitorSessionDuration summary property to track now long CRC ran.
- Added MonitorQuitSignalRecv summary property to detect when CRC is soft killed like: taskkill /PID 1234
- Added MonitorIsReportingCrash summary property to track when CRC dies reporting a crash.
- Added MonitorIsCollectingCrash summary property to track when CRC dies collecting a crash artifacts.
- Added IsProcessingCrash summary property to track when CRC dies processing a crash.
- Added MonitorCrashed summary property to track when CRC exception handler was triggered.
- Added MonitorWasShutdown summary property to track when CRC summary was shutdown
- Added MonitorLoggingOut summary property to track when CRC died because the user was logging out (or as result of shutting down or restarting the computer).
- More accurate value for DeathTimestamp summary property because this is now captured in CRC background thread (which cannot be busy handling a crash)
- Added crash processing timing to CRC diagnostic logs (how long it takes to collect/process a crash).

#rb Jamie.Dale, Wes.Hunt, Johan.Berg
#jira UETOOL-3500
#jira UE-114315

[CL 16324612 by Patrick Laflamme in ue5-main branch]
2021-05-13 21:58:20 -04:00
Ben Marsh
dbe5766288 Horde: Merging latest agent/server code from Git.
[CL 16323617 by Ben Marsh in ue5-main branch]
2021-05-13 21:01:59 -04:00
Zousar Shaker
5234e8fb12 Define first TextureBuildWorkers for use with DDC as well as a DDC build worker base module used as an entrypoint for standalone worker binaries.
#rb matt.peters

[CL 16323208 by Zousar Shaker in ue5-main branch]
2021-05-13 20:42:14 -04:00
Joe Kirchoff
0e3c9f756f UnrealBuildTool: Slightly optimize generated visual studio project to reduce memory usage
* Filter out numerous source files that match */Source/ThirdParty/* that should have already been filtered, this does not include Module.Build.cs or .tps files, or if bGatherThirdPartySource is enabled
* Filter out source files that match */third_party/* by default
* Add option bIncludeDotNetPrograms to remove all ..NET projects, doing so saved me around 400MB. Note if you disable the .NET projects UnrealBuildTool won't build before compiling (but GenerateProjectFiles.bat will still build it)

Attempted changes that did not reduce memory usage by a significant amount:
* Filtering out project configurations
* Filtering out Engine/Shaders or Engine/Content/Editor/Templates
* Increasing the shared include size, even making it large enough to contain every include path didn't really make a difference. Also it can't really be increased anyway because that entire property is added to the process environment when starting a build and there's a max environment size of around 32k

Other Fixes:
* Fix vs2019 ToolVersionString 15.0 -> 16.0
* Add VCProjectVersion to Project globals
* Update UniqueIdentifier GUIDs in projects to be stable by hashing the directory path and using that hash as the GUID
* Don't write ProjectConfiguration if filtered out (Didn't affect memory usage)
* Add optional configuration filter for Debug, DebugGame, & Development

#jira UE-111822
#rb none

[CL 16319735 by Joe Kirchoff in ue5-main branch]
2021-05-13 17:38:21 -04:00
branden turner
071fc5bd8c Changing logic of BuildPlugin slightly such that it correctly outputs all of the Target Platforms that will be built, accounting for SupportedTargetPlatforms. Still works the same, but now with correct output.
#jira UE-115672
#fyi ben.marsh
#rb none

[CL 16318920 by branden turner in ue5-main branch]
2021-05-13 17:02:47 -04:00
Ben Marsh
4eb3794455 Fix case of path to p4api.net project for building on Linux.
[CL 16318814 by Ben Marsh in ue5-main branch]
2021-05-13 16:57:17 -04:00
geoff evans
b7adbc6730 Support for running multiple projects within the same Iteration Profile build
* This will give us wider data collection to detect regressions in the cases where a single project has a blocking issue.

AutomationTool:
* Add support for appending semicolon delimited parameters into Options (to feed <ForEach/>)

Horde:
* Put project name into labels to isolate trends graph as builds are run on different projects

#jira none
#rb tbd

[CL 16318721 by geoff evans in ue5-main branch]
2021-05-13 16:53:24 -04:00
Ben Marsh
9dd20c81a9 Fix HordeServer compile errors.
[CL 16317891 by Ben Marsh in ue5-main branch]
2021-05-13 16:15:17 -04:00
Ben Marsh
e08c576d11 Merging ContentHash changes from Horde repo.
[CL 16317843 by Ben Marsh in ue5-main branch]
2021-05-13 16:13:41 -04:00
Brandon Schaefer
9d8a996e22 Fix Android setup for Linux, add TODO for Mac
#jira UE-109276, UE-109272
#review-16095149 @Chris.Babcock, @Josh.Adams, @Nuno.Leiria, @James.Singer
#rb Chris.Babcock, James.Singer
#fyi Will.Damon, Dave.Hunter

[CL 16317826 by Brandon Schaefer in ue5-main branch]
2021-05-13 16:13:05 -04:00
Zousar Shaker
259ee51166 Avoid having bCompileAPEX and bCompileNvCloth enabled always on Linux build targets if the architecture started with x86_64.
#rb devin.doucette

[CL 16317661 by Zousar Shaker in ue5-main branch]
2021-05-13 16:06:24 -04:00
Ben Marsh
f678ce3114 Fix path to P4API.NET library.
[CL 16317602 by Ben Marsh in ue5-main branch]
2021-05-13 16:03:40 -04:00
Ben Marsh
58070051da HordeAgent: Use the application directory when running the Publish command.
[CL 16316848 by Ben Marsh in ue5-main branch]
2021-05-13 15:21:15 -04:00
Ben Marsh
c832a942f1 Fix P4 fstat calls for a particular changelist including an invalid last record.
[CL 16316832 by Ben Marsh in ue5-main branch]
2021-05-13 15:20:08 -04:00
Zhenglin Geng
e78a1449cd Update headlesschaos plasticity tests
Use gravity to test linear plasticity. This way we don't need to tune stiffness/damping based on collision behaviors.

#rb trivial
#jira none

[CL 16316415 by Zhenglin Geng in ue5-main branch]
2021-05-13 14:52:26 -04:00
Ben Marsh
315b06801b Fix staging of appsettings for HordeAgent.
[CL 16316375 by Ben Marsh in ue5-main branch]
2021-05-13 14:49:41 -04:00
ben woodhouse
3a4ab3758b Integrate CL 16308862 from Dev-EngineMerge: PerfReportTool 4.47 - ExtraLinks summary
Change 16308862 by ben.woodhouse[at]ROBOMERGE_FORTNITE_Dev_EngineMerge on 2021/05/12 22:00:30

PerfReportTool 4.47 - ExtraLinks summary
Adds a new ExtraLinks summary type, which reads a <csvfilename>.links file. The file contains lines with additional links in the format:
LongName,ShortName,URL

These links are added to a new Links section of the report. They are also added to summary table row, with the LongName as the key.

The section can be added to all reports by adding with -extraLinksSummary, or add the summary type "ExtraLinks" to the Report type XML.

#ROBOMERGE-SOURCE: CL 16308651 via CL 16309102 via CL 16315492 via CL 16315504
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v804-16311228)

[CL 16315530 by ben woodhouse in ue5-main branch]
2021-05-13 13:55:13 -04:00
geoff evans
e1d1984bd4 Add support for trace counters to stall detector and trace summarize commandlet for telemetry in Iteration Profile
StallDetector:
* Replace static and per-callsite counter variables with trace classes
* Compose a trace api appropriate counter name (Stall Detector category)

SummarizeTraceCommandlet:
* Add support for extract and decode of counter messages from utrace files with a new analyzer class
* Report counters with name and count columns in the existing csv
* Support generation of counter events and values through to telemetry csv

#jira UETOOL-3506
#rb francis.hurteau
#preflight 609c5f45e88e9100010b5466

[CL 16314462 by geoff evans in ue5-main branch]
2021-05-13 12:37:02 -04:00
Joe Kirchoff
af18aebc41 Fix UnrealBuildToolTests compile error
#rb trivial

[CL 16314048 by Joe Kirchoff in ue5-main branch]
2021-05-13 12:03:23 -04:00
Ben Marsh
1b857a712c Upgrade NuGet package dependency.
[CL 16313598 by Ben Marsh in ue5-main branch]
2021-05-13 11:34:10 -04:00
Ben Marsh
44d7a02d1d Add an explicit accessor for getting the path to the DotNet host.
[CL 16312643 by Ben Marsh in ue5-main branch]
2021-05-13 10:24:37 -04:00
Ben Marsh
fbba412e7b Fix path to DotNET executable.
[CL 16312463 by Ben Marsh in ue5-main branch]
2021-05-13 10:04:39 -04:00
Tim Smith
85fc123dc0 Removed the FTokenData and FPropertyData. Information has been moved to the type system.
#rb jonathan.adamczewski
#rnx
#preflight 609d0a38a5e8310001bc76ac

[CL 16311618 by Tim Smith in ue5-main branch]
2021-05-13 07:56:52 -04:00
aurel cordonnier
8eebe8841f Merge UE5/RET @ 16305968 to UE5/Main
This represents UE4/Main @ 16261013 and Dev-PerfTest @ 16259937

[CL 16306996 by aurel cordonnier in ue5-main branch]
2021-05-12 18:10:03 -04:00