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]
FParkingLot is a framework for building locks and other synchronization primitives, based on WTF::ParkingLot from WebKit.
FMutex is a one-byte mutex that is neither fair nor recursive, based on WTF::Lock from WebKit.
TUniqueLock and TDynamicUniqueLock are generic types to manage mutex locking, based on std::unique_lock.
#preflight 63fe76cbae54ee4ce9db2ca6
#rb Andriy.Tylychko, Phil.Pizlo
[CL 24552008 by devin doucette in ue5-main branch]
* Added option to generate assembly files while compiling cpp files.
* Supported only on MSVC compiler for now.
* The generated files have the .asm extension and are located in the same Intermediate folder as the corresponding .obj
#jira none
#rb Joe.Kirchoff
#preflight
[CL 24545403 by LouisPhilippe Seguin in ue5-main branch]
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
Update preferred MSVC to 14.35.32215 (VS2022 17.5.x)
#preflight 640645dc8832f48a4dcaa686
[CL 24534388 by joe kirchoff in ue5-main branch]
- .app is now fully made by Xcode, not partially by UBT/UAT (exe is copied into .app via shell script, and "cookeddata" is a folder reference in the Xcode proejct - for IOS/TVOS only for now)
- Updated how metadata files are found in the Metadata class, and template plist files are now called Info.Template.plst
- A prebuild script does some prep work to help with Xcode and UBT interaction, and the way our legacy build locations mess with Build after Archive
- Fixed some ".app" issues where the PRODUCT_NAME was missing
#rb self
#preflight 63f8fed82b1a2765f986f63f
[CL 24404636 by Josh Adams in ue5-main branch]
- previously WindowsPlatform set the platform header name override define to "Windows" and a derived class then removed it from the preprocessor definitions list
- the removal was incorrect but this still resulted in the derived platform having a platform header name override which matched the patforms name so it still functioned correct
- however, it would be cleaner to not set the platform header override name at all for that platform
- setting of this preprocessor definition has been revised so that Windows platforms specify the override via a separate GetOverridePlatformHeaderName() method which may return null to indicate no override should be used
#rb David.Harvey
#jria none
#preflight 63f3f5f090198dffbaff5112
#rnx
[CL 24340262 by eric mcdaniel in ue5-main branch]