Commit Graph

72 Commits

Author SHA1 Message Date
joe kirchoff
acb0f7f95f UnrealBuildTool: Track cache stats in executor telemetry
#rnx

[CL 33523515 by joe kirchoff in ue5-main branch]
2024-05-08 15:17:35 -04:00
henrik karlsson
528ceda40d [UBT]
* Fixed so max artifact task count can be set from the outside
* Cosmetic fix for logging

[CL 33211993 by henrik karlsson in ue5-main branch]
2024-04-24 16:28:17 -04:00
joe kirchoff
1975bacb57 UnrealBuildTool: Add support for studio telemetry. Requires connection info to be defined in a BaseEngine.ini config, as well as opting into those providers via a BuildConfiguration.xml setting
#jira UE-210668

#ushell-cherrypick of 32521294 by Joe.Kirchoff

[CL 32550524 by joe kirchoff in ue5-main branch]
2024-03-27 14:05:42 -04:00
joe kirchoff
cd31d08f0e UnrealBuildTool: ParallelExecutor use Process.WaitForExitAsync
#rnx

[CL 30058797 by joe kirchoff in ue5-main branch]
2023-12-01 18:29:06 -05:00
joe kirchoff
c44fc5fd4a UnrealBuildTool: Print action groups in parallel executor when building multi target
#rnx

[CL 27006666 by joe kirchoff in ue5-main branch]
2023-08-10 15:38:17 -04:00
Tim Smith
5189d48cbd Fixed issue where some executor output might appear below the summary.
#rb Ryan.Hummer

[CL 26672185 by Tim Smith in ue5-main branch]
2023-07-28 09:55:20 -04:00
henrik karlsson
78225af9cd Undo changelist 26507841 because it cause deadlocks during build.
[CL 26527677 by henrik karlsson in ue5-main branch]
2023-07-21 17:51:56 -04:00
Tim Smith
45406e6006 1) Fixed internal performance issue where attempts to start actions were being spammed.
2) Fixed an extremely rare issue where action execution might be terminated early.
3) Improved logging to provide better visibility when actions fail resulting in dependent actions not getting executed (i.e. not all actions being logged with no error feedback)
4) Fixed issue where not all error messages would be logged prior to the build summary

#rb tbd

[CL 26507830 by Tim Smith in ue5-main branch]
2023-07-21 07:13:36 -04:00
henrik karlsson
ab460ba261 [UBT]
* ParallelExecutor - Fixed bug where totalactions was used to set maxweight.. this means that if 35 cl.exe actions were queued (which has weight 1.5) it would only build max 23 actions in parallel even though NumParallelProcesses might be higher (computer might have 128 cores)

[CL 26379886 by henrik karlsson in ue5-main branch]
2023-07-09 18:50:33 -04:00
henrik karlsson
be9eb407a8 [UBT]
* Added AdditionalDescription parameter to ParallelExecutor.RunAction
* Added bCanExecuteInBox for actions

[CL 25968700 by henrik karlsson in ue5-main branch]
2023-06-13 20:26:15 -04:00
joe kirchoff
acf80ab609 [Backout] - CL25694851
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: More automated code cleanup

#rnx

[CL 25695155 by joe kirchoff in ue5-main branch]
2023-05-30 19:55:37 -04:00
joe kirchoff
7ed1a39679 UnrealBuildTool: More automated code cleanup
#rnx

[CL 25694864 by joe kirchoff in ue5-main branch]
2023-05-30 19:36:05 -04:00
joe kirchoff
36d266e932 UnrealBuildTool: Automated code cleanup
#rnx
#preflight 6476799e947ff6973c225619

[CL 25693241 by joe kirchoff in ue5-main branch]
2023-05-30 18:38:07 -04:00
joe kirchoff
57a8fe409c UnrealBuildTool: Use expression body for simple properties and accessors
#rnx
#preflight 64766abcfe6a3b258a04cb50

[CL 25691579 by joe kirchoff in ue5-main branch]
2023-05-30 18:01:50 -04:00
tim smith
dce93c0456 1) Added missing exception handling in the tasks
2) Reworked how "stop after error" works
3) Fixed  issue where error propagation might result in a failure to exit.

#rb self
#preflight 645b7ef03172e962d2cf3e47

[CL 25402787 by tim smith in ue5-main branch]
2023-05-10 08:40:51 -04:00
tim smith
e32f741420 1) Addition of the artifact interfaces
2) Moved common code from executors into an immediate action queue.
3) Added support in the immediate action queue to read/write artifacts

#rb joe.kirchoff
#preflight 6454f3c5ed7ffaa0f5b2fbfa

[CL 25355149 by tim smith in ue5-main branch]
2023-05-05 11:19:57 -04:00
joe kirchoff
eeda39b9b9 UnrealBuildTool: Update executor tasks to be long running
#rnx
#rb trivial

[CL 25296539 by joe kirchoff in ue5-main branch]
2023-05-01 20:26:27 -04:00
Ben Marsh
3889217961 UBT: Merging CL 25121561 to support async ToolMode and ActionExecutor instances.
#preflight none

[CL 25121660 by Ben Marsh in ue5-main branch]
2023-04-19 21:44:13 -04:00
joe kirchoff
e0254d98e8 UnrealBuildTool: Fix Action properties that weren't being serialized
#rnx

[CL 24878293 by joe kirchoff in ue5-main branch]
2023-03-31 16:51:20 -04:00
henrik karlsson
3f6b2896a8 [UnrealBuildTool]
* Added experimental executor "Box"

#preflight 6414e9a4ca2afe3ee6c35c9a
#rb partly joe.kirchoff (not the Box code part)

[CL 24702059 by henrik karlsson in ue5-main branch]
2023-03-18 01:42:55 -04:00
bryan sefcik
f3f15a7aa5 Fixed an issue where -allcores would not be used if ProcessorCountMultiplier was set.
Fixed an issue where it was possible to do more parallel actions than cores available.

#rb joe.kirchoff
#preflight 640bc8aa363e9b40abeac263

[CL 24600925 by bryan sefcik in ue5-main branch]
2023-03-10 19:27:40 -05:00
Ben Marsh
7e26c34d2b EpicGames.Core: Deprecate legacy log methods to prefer structured logging interface.
#preflight 640a23d928026468d9de7cbd

[CL 24580590 by Ben Marsh in ue5-main branch]
2023-03-09 14:51:40 -05:00
bryan sefcik
1ad98523c4 Added support to give actions in UBT "weight". "Weight" is an average measurement of how many cores and memory an action uses. Using one core with a normal amount of memory for an action would be a value of 1.
Why do this:
Currently when compiling a cpp file with MSVC, it compiles across multiple cores while clang does not. This means that while we support limiting the number of cores(using ProcessorCountMultiplier), MSVC will use more cores than we specify. It also means that MSVC will always be faster when compiling because clang does not support compiling a cpp over multiple cores. To get similiar results when compiling with clang, we set the weight of MSVC to 1.5 and the weight of clang to 1.0. We then set the ProcessorCountMultiplier to 1.5. This results in MSVC and clang taking roughly the same amount of CPU utilization and clang compiles to be much faster.

	                     Old Timing(secs)	Old CPU Utilization	New Timing	New CPU Utilization(secs)
PlatformA AncientGame	590.94	51	                               431.47	73
MSVC AncientGameEditor	1016.96	94	                             1026.08	95
Clang AncientGameEditor	1543.72	63	                               1270.4	84
PlatformB AncientGame	494	52	                               396.95	74

Old = without weight path
New = with weight path

#jira
#rb christopher.waters, joe.kirchoff
#preflight 6409026c8832f48a4dc72025

[CL 24567859 by bryan sefcik in ue5-main branch]
2023-03-08 17:08:22 -05:00
henrik karlsson
1c80dec3c0 [UBT]
* Changed so ParallelExecutor is creating build tasks as resources becomes available instead of building up a big task graph up front. The way the previous parallel executor was implemented could cause poor utilization of resources.

With this change plus 23915597  FortniteEditor wall time went down from ~15m to 13m  (tested three times with and without changes)

#preflight 63d5d8eb5c69f453c19e5385
#rb Joe.Kirchoff

[CL 23923458 by henrik karlsson in ue5-main branch]
2023-01-31 01:16:30 -05:00
Joe Kirchoff
042c3ca548 UnrealBuildTool: Use Normal priority for ParallelExecutor for asymmetric processors as BelowNormal can cause scheduling issues
#rnx
#rb trivial
#jira UE-168380
#preflight 63b8b7ce577437afe614728f

[CL 23605849 by Joe Kirchoff in ue5-main branch]
2023-01-06 19:29:19 -05:00