* Changed how sorting of Actions is made. This to increase throughput of builds and reduce bubbles.
1. Changed so after actions are sorted based on dependency count we do a second pass and try to move linking to as early as possible. Reason is because linking is less cpu intense and makes sense to do in parallel with compiling instead of all linking happening at the end. Linking is also not remotely executed in some scenarios and therefore we want the local host to do the linking while other actions are remotely executed
2. Added a high priority flag that can explicitly be set on actions. This is now set on actions building precompiled headers which often takes a long time and can push out builds if they are only prioritized based on dependency count. This flag is also used in IWYU build mode to build headers first (to flush out errors early) and will most likely be used in header unit builds to prioritize header unit files before other code files.
With these changes plus a following change in ParallelExecutor.cs FortniteEditor wall time went down from ~15m to 13m (tested three times with and without changes)
#preflight 63d822b95c69f453c11c0ce5
#rb joe.kirchoff
[CL 23923446 by henrik karlsson in ue5-main branch]
Also can be set via BuildConfiguration.xml with:
<BuildConfiguration><bCompactOutput>true</bCompactOutput></BuildConfiguration>
#jira none
#preflight 626ae00e2c7b46848542a57f
[CL 19982217 by jonathan adamczewski in ue5-main branch]
Add XGE config MinActions to avoid using XGE for small groups of tasks (e.g. single file compile).
#rb jonathan.adamczewski
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 19413669 via CL 19415283 via CL 19428032 via CL 19428154
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)
[CL 19432532 by robert millar in ue5-main branch]
- Prevent the unnecessary scanning of response files
- Prevent the unnecessary scanning and distribution of header files for other platforms
- Add bAllowOverVpn and VpnSubnets XmlConfigFile settings to allow restriction of distribution over VPN
- Utilize ProgressWriter to better mark up progress text as is done with other executor implementations
#jira none
#rb joe.kirchoff
#preflight none
[CL 19208610 by jeff newquist in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]