This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
IsActionGraph() is complicated: recursively evaluating a graph, modifying data at each node (ActionHistory.UpdateProducingAttributes) making it easy to introduce hard-to-see race conditions, and difficult to optimize.
This change splits the function into two parts:
IsIndividualActionOutdated(): finds nodes that are out of date, based on the node's own data - able to be run in parallel, with less cross-thread contention.
IsActionOutdatedDueToPrerequisites(): recursively traverse the graph, to determine if an action is out of date based on its prerequisites. Does not run in parallel, but is fast (processes ~6000 actions in 2-3ms).
For a clean, simple project editor build, total runtime is <100ms, compared to ~150ms previously.
#jira none
[FYI] ben.marsh
#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 17553054 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17553068 by jonathan adamczewski in ue5-release-engine-test branch]
Update ManagedProcess to capture stderr if using C# Process objects
#jira UE-117670
#rb Ben.Marsh
#ROBOMERGE-SOURCE: CL 16647451 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16647455 by joe kirchoff in ue5-release-engine-test branch]
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Remove LocalExecutor and use ParallelExecutor for all host platforms
Update ManagedProcess to capture stderr if using C# Process objects
#jira UE-117670
#rb Ben.Marsh
#preflight 60c2a1d3730f8a000185ae66
#preflight 60c2a5bab1a4a300012ea45d
#ROBOMERGE-SOURCE: CL 16642682 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16642692 by joe kirchoff in ue5-release-engine-test branch]
Update ManagedProcess to capture stderr if using C# Process objects
#jira UE-117670
#rb Ben.Marsh
#preflight 60c2a1d3730f8a000185ae66
#preflight 60c2a5bab1a4a300012ea45d
#ROBOMERGE-SOURCE: CL 16642253 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16642263 by joe kirchoff in ue5-release-engine-test branch]
RootDirectory, EngineDirectory, UnrealBuildToolPath are now found in BuildUtilities' UnrealBuild namesapce.
The way these are computed has changed. Previously, it was assumed that the application is UnrealBuildTool, and paths were constructed relative to that assembly.
Now, the assumption is that the process is located under a "Engine/Build/DotNET" sub-path and paths are constructed relative to that.
#jira none
#ROBOMERGE-SOURCE: CL 16607440 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16607455 by jonathan adamczewski in ue5-release-engine-test branch]