Commit Graph

144 Commits

Author SHA1 Message Date
joe kirchoff
acacd6a8de UnrealBuildTool: More automated code cleanup
* Use object type rather than var
* Remove double newlines
* Use pattern matching

#rnx
#preflight 647780095d23eca37d28a387

[CL 25706751 by joe kirchoff in ue5-main branch]
2023-05-31 13:37:21 -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
c04da27b3b UnrealBuildTool: More automated code cleanup
#rnx
#preflight 64767efb4b1ead7c7f428c7a

[CL 25693857 by joe kirchoff in ue5-main branch]
2023-05-30 18:59:32 -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
james singer
570bba8392 Fix response file paths with special characters causing packaging errors
#jira UE-178471
#review-24597299 @Brandon.Schaefer
#rb Brandon.Schaefer
#preflight 640f26a9482188d7103ebdde

[CL 24612037 by james singer in ue5-main branch]
2023-03-13 09:56:41 -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
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
39037d774c [UBT]
* Optimization - WriteFileIfChanged taking enumerable of strings now join them all up to one string and use the WriteFileIfChanged path for one string. This saves some time seen when profiling
* Optimization - ExpandVariables use OrdinalCompare to find "$("

#preflight 63d838fcf626715201917046
#rb joe.kirchoff

[CL 23923964 by henrik karlsson in ue5-main branch]
2023-01-31 01:26: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
joe kirchoff
6b64b2da29 UnrealBuildTool: Obsolete some properties moved to EpicGames.Build
#rnx
#rb trivial

[CL 22961430 by joe kirchoff in ue5-main branch]
2022-11-03 15:02:36 -04:00
joe kirchoff
9d5e715748 UnrealBuildTool: Option to consider logical cores when running local builds
#jira UE-163438
#rnx
#rb none
#preflight 631baf2a304480f8f8bceac6

[CL 21930861 by joe kirchoff in ue5-main branch]
2022-09-09 19:16:18 -04:00
jorgenpt
86e78f4299 PR #9021: Improve support for PreBuildSteps generating files (Contributed by jorgenpt)
#rb trivial
#preflight 62d5b5bf950c572d242a6c8d

[CL 21152219 by jorgenpt in ue5-main branch]
2022-07-18 16:23:54 -04:00
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00
jonathan adamczewski
c1bb6901bf Upgrade to .NET 6.0
#jira UE-119846
#preflight 624cbb2ecc0872e96b0d5181

[CL 19652696 by jonathan adamczewski in ue5-main branch]
2022-04-06 14:46:50 -04:00
jonathan adamczewski
5c68d1d9ef Revert //UE5/Main/... changelist 19531725 - return to NET Core 3.1
#preflight 62422fd0470aff98e946bfce
#jira UE-119846

[CL 19534572 by jonathan adamczewski in ue5-main branch]
2022-03-28 18:25:19 -04:00
jonathan adamczewski
18ac15cbb1 Upgrade to .NET 6.0
#jira UE-119846
#preflight 6241fc06470aff98e943c035

[CL 19531725 by jonathan adamczewski in ue5-main branch]
2022-03-28 15:30:56 -04:00
Joe Kirchoff
236f98fcc5 UnrealBuildTool: Don't use a remote distribution executor if the total number of actions is less than the number of max local parallel actions
#jira UE-146958
#rb trivial
#preflight 623bb3c688538cd45e263663

[CL 19489660 by Joe Kirchoff in ue5-main branch]
2022-03-23 20:14:29 -04:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
jonathan adamczewski
bad82bd088 UnrealBuildTool: Cap default parallel process count to physical core count.
Evidence suggests that throughput is not significantly reduced by using the number of physical cores, and that doing so reduces frequency of "C1060: compiler is out of heap space" errors.

#jira none

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 17539899 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[bot1]: EMT

[CL 17539920 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-16 12:10:03 -04:00
jonathan adamczewski
79aed20146 UnrealBuildTool:
Support for writing files directly as lines, without converting to a single string first.

#jira none
#rb joe.kirchoff

#ROBOMERGE-SOURCE: CL 17162046 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17162059 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-12 20:46:22 -04:00
brandon schaefer
a90cdbe7c2 Rename LinuxAArch64 to LinuxArm64
#jira UE-118127
#rb Michael.Sartain
[FYI] Marc.Audy, Aurel.Cordonnier

#ROBOMERGE-SOURCE: CL 16660821 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v834-16658389)

[CL 16660830 by brandon schaefer in ue5-release-engine-test branch]
2021-06-14 13:40:06 -04:00
jonathan adamczewski
64c210d294 AutomationTool, BuildUtilities:
UnrealBuild -> Unreal for EngineDirectory, RootDirectory, IsEngineInstalled, UnrealBuildToolPath
Remove CommandUtils EngineDirectory, RootDirectory, IsEngineInstalled - use equvalents from UnrealBuildBase.Unreal

#jira none

#ROBOMERGE-SOURCE: CL 16648181 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16648203 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-11 18:21:35 -04:00
jonathan adamczewski
d58996b916 UnrealBuildTool: move some path constants into BuildUtilities
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]
2021-06-09 12:55:13 -04:00