Commit Graph

8886 Commits

Author SHA1 Message Date
dan oconnor
98628be41e ExpandEnumAsExecs now works with bool parameters, added ExpandBoolAsExecs synonym
#rb Phllip.Kavan
#jira UE-89057


#ROBOMERGE-SOURCE: CL 11522401 via CL 11522407 via CL 11522423
#ROBOMERGE-BOT: (v654-11333218)

[CL 11525131 by dan oconnor in Main branch]
2020-02-18 17:21:46 -05:00
andrew grant
03617b67df Integrated scripts for doing simple benchmarking of build steps from Private-Profiling.
Also includes -noshaderddc option for emulating a cold DDC for shaders only.


#rb na
#ROBOMERGE-OWNER: andrew.grant
#ROBOMERGE-AUTHOR: andrew.grant
#ROBOMERGE-SOURCE: CL 11519411 via CL 11519529 via CL 11519553
#ROBOMERGE-BOT: (v654-11333218)

[CL 11524747 by andrew grant in Main branch]
2020-02-18 17:19:54 -05:00
patrick laflamme
b307af769f #jira UE-88968 - CrashReportClientEditor with MTBF do not sent the analytics report if the user dimisses crash report UI with 'Close Without Sending' very quickly.
- Added a 60 seconds grace period for the Editor process to exit so that we can read its exit code.

#rb Francis.Hurteau
#lockdown cristina.riveron

#ROBOMERGE-OWNER: patrick.laflamme
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 11507818 in //UE4/Release-4.24/... via CL 11508156 via CL 11508181
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11508901 by patrick laflamme in Main branch]
2020-02-18 14:14:57 -05:00
patrick laflamme
cf408bd077 #jira UE-88968 - CrashReportClientEditor with MTBF do not sent the analytics report if the user dimisses crash report UI with 'Close Without Sending' very quickly.
- Added a 60 seconds grace period for the Editor process to exit so that we can read its exit code.

#rb Francis.Hurteau
#lockdown cristina.riveron

#ROBOMERGE-OWNER: patrick.laflamme
#ROBOMERGE-AUTHOR: patrick.laflamme
#ROBOMERGE-SOURCE: CL 11507818 in //UE4/Release-4.24/... via CL 11508156
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11508181 by patrick laflamme in 4.25-Plus branch]
2020-02-18 13:51:21 -05:00
andrew grant
fe6bf6d6a0 Make sure libgnustl_shared is writable in intermediates folder.
#tests Android builds from AutoSDK can now be cleaned.

[FYI] chris.babcock


#ROBOMERGE-SOURCE: CL 11507176 via CL 11507199 via CL 11507207
#ROBOMERGE-BOT: (v654-11333218)

[CL 11507215 by andrew grant in Main branch]
2020-02-18 13:27:37 -05:00
chris babcock
11aa9365b8 Fix issue with install batch file detection for Android
#jira UE-89006
#ue4
#android
#rb Brandon.Schaefer

#ROBOMERGE-SOURCE: CL 11504731 in //UE4/Release-4.25/... via CL 11504758
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11504786 by chris babcock in Main branch]
2020-02-18 12:58:09 -05:00
chris babcock
4669b6b985 Fix issue with install batch file detection for Android
#jira UE-89006
#ue4
#android
#rb Brandon.Schaefer

#ROBOMERGE-SOURCE: CL 11504731 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11504758 by chris babcock in 4.25-Plus branch]
2020-02-18 12:57:30 -05:00
pierreolivier latour
2f056c6bbe Fixed UnrealBuildTool crashing on launch if initialization of UnrealTargetPlatform static members variables happens out of order
## Summary

`UnrealTargetPlatform` and `UnrealPlatformGroup` are partial structs which each have a static member variable declared like this:

private static UniqueStringRegistry StringRegistry = new UniqueStringRegistry();

These partial structs have additional implementations in /Engine/Platforms/XXX/Source/Programs/UnrealBuildTool/UEBuildXXX.cs, which also have static member variables declared like this:

public static UnrealTargetPlatform XXX = FindOrAddByName("XXX");

`FindOrAddByName()` is a static method on `UnrealTargetPlatform` and `UnrealPlatformGroup` which accesses `StringRegistry` and requires it to be initialized i.e. non-null.

It appears that there's no guarantee in .NET runtime that the static member variables in the "original" implementation of the partial structs will be initialized _before_ the ones from the "additional" implementations. This means `XXX` above can be initialized in the additonal implementation before `StringRegistry` has been initialized in the original implementation, which means it's still null when `FindOrAddByName()` is called so the tool crashes.

In practice, this is 100% reproducible in our public GitHub mirror when opening `UnrealBuildTool.csproj` with VisualStudio Mac. This IDE rewrites the project file which affects when / how UEBuildXXX.cs is compiled, and static member variables for these partial structs end up being initialized out or order.

The only solution I found that worked was to replace all accesses to the `StringRegistry` static member variables by a wrapper function `GetUniqueStringRegistry()` which takes care of initializing it - only once. Since all this happens while the tool launches, this code should not need to be multithread aware / re-entrant.

NOTE: There is another partial struct `RestrictedFolder` in this codebase which also use `UniqueStringRegistry` in a similar way but the 2 implementations are in the same source file, so the bug may not happen and I left the implementation untouched.

## Test Plan

- Opened `UnrealBuildTool.csproj` with VisualStudio Mac
- Built UnrealBuildTool and verified it crashed on launch due to `StringRegistry` being NULL when used by `FindOrAddByName()`
- Confirmed the crash doesn't happen anymore after applying this change and that the `StringRegistry` static member variable was only set once by `GetUniqueStringRegistry()`


#jira UE-88908
#rb ben.marsh

#ROBOMERGE-SOURCE: CL 11498874 in //UE4/Release-4.25/... via CL 11498887
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11498906 by pierreolivier latour in Main branch]
2020-02-18 10:03:58 -05:00
pierreolivier latour
f989e516fc Fixed UnrealBuildTool crashing on launch if initialization of UnrealTargetPlatform static members variables happens out of order
## Summary

`UnrealTargetPlatform` and `UnrealPlatformGroup` are partial structs which each have a static member variable declared like this:

private static UniqueStringRegistry StringRegistry = new UniqueStringRegistry();

These partial structs have additional implementations in /Engine/Platforms/XXX/Source/Programs/UnrealBuildTool/UEBuildXXX.cs, which also have static member variables declared like this:

public static UnrealTargetPlatform XXX = FindOrAddByName("XXX");

`FindOrAddByName()` is a static method on `UnrealTargetPlatform` and `UnrealPlatformGroup` which accesses `StringRegistry` and requires it to be initialized i.e. non-null.

It appears that there's no guarantee in .NET runtime that the static member variables in the "original" implementation of the partial structs will be initialized _before_ the ones from the "additional" implementations. This means `XXX` above can be initialized in the additonal implementation before `StringRegistry` has been initialized in the original implementation, which means it's still null when `FindOrAddByName()` is called so the tool crashes.

In practice, this is 100% reproducible in our public GitHub mirror when opening `UnrealBuildTool.csproj` with VisualStudio Mac. This IDE rewrites the project file which affects when / how UEBuildXXX.cs is compiled, and static member variables for these partial structs end up being initialized out or order.

The only solution I found that worked was to replace all accesses to the `StringRegistry` static member variables by a wrapper function `GetUniqueStringRegistry()` which takes care of initializing it - only once. Since all this happens while the tool launches, this code should not need to be multithread aware / re-entrant.

NOTE: There is another partial struct `RestrictedFolder` in this codebase which also use `UniqueStringRegistry` in a similar way but the 2 implementations are in the same source file, so the bug may not happen and I left the implementation untouched.

## Test Plan

- Opened `UnrealBuildTool.csproj` with VisualStudio Mac
- Built UnrealBuildTool and verified it crashed on launch due to `StringRegistry` being NULL when used by `FindOrAddByName()`
- Confirmed the crash doesn't happen anymore after applying this change and that the `StringRegistry` static member variable was only set once by `GetUniqueStringRegistry()`


#jira UE-88908
#rb ben.marsh

#ROBOMERGE-SOURCE: CL 11498874 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11498887 by pierreolivier latour in 4.25-Plus branch]
2020-02-18 10:03:16 -05:00
rex hill
07765fd027 UnrealBuildTool: Turned off parsing of platform data that often fails for plugins that are disabled during project generation.
#jira UE-88904
#rb ben.marsh


#ROBOMERGE-SOURCE: CL 11498406 via CL 11498420 via CL 11498430
#ROBOMERGE-BOT: (v654-11333218)

[CL 11498551 by rex hill in Main branch]
2020-02-18 09:41:52 -05:00
jack porter
5afece95ae Fixed iOS toolchain crash with missing provision
#jira UE-88744
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 11493809 in //UE4/Release-4.25/... via CL 11493935
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11493973 by jack porter in Main branch]
2020-02-18 02:49:05 -05:00
jack porter
e89c88804b Fixed iOS toolchain crash with missing provision
#jira UE-88744
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 11493809 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11493935 by jack porter in 4.25-Plus branch]
2020-02-18 02:48:21 -05:00
chris babcock
ac8ca97144 Update BundleTool to 0.13.0
#jira UE-88929
#ue4
#android
#rb Tyler.Quinn

#ROBOMERGE-SOURCE: CL 11467813 in //UE4/Release-4.25/... via CL 11467815
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11467820 by chris babcock in Main branch]
2020-02-17 17:24:13 -05:00
chris babcock
2753dde55a Update BundleTool to 0.13.0
#jira UE-88929
#ue4
#android
#rb Tyler.Quinn

#ROBOMERGE-SOURCE: CL 11467813 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11467815 by chris babcock in 4.25-Plus branch]
2020-02-17 17:23:22 -05:00
patrick laflamme
5a60a93830 #jira UE-88801 - CrashReporterClientEditor crashes if the bug report windows in closed before the callstack appears
- Prevented CrashReportClient::FinalizeDiagnoseReportWorker() function to called after the CrashReportClient instance was deleted.

Details:

The FDiagnoseReportWorker asynchronous task created an extra asynchronous tasks (calling back CrashReportClient instance) that could fire after the targetted CrashReportClient instance was deleted. The solutions moves the logic to 'finilize' the report in the tick function that is expected to run in the game thread and make 'Close Without Sending' flows  like 'Send and Close'/'Send and Restart' but without sending anything.

#rb Francis.Hurteau
#lockdown cristina.riveron

#ROBOMERGE-SOURCE: CL 11462889 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v654-11333218)

[CL 11462901 by patrick laflamme in Main branch]
2020-02-17 14:41:35 -05:00
benoit deschenes
0fccbc4c51 Integrating CL# 11292240 from Dev-Enterprise
Fixing crash in 3ds Max Exporter, autodesk noise map are not supported.

#jira UE-88193
Julien.StJean
#rb Julien.StJean

#ROBOMERGE-SOURCE: CL 11462019 in //UE4/Release-4.25/... via CL 11462031
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11462473 by benoit deschenes in Main branch]
2020-02-17 14:24:24 -05:00
benoit deschenes
2c3dfaef4a Integrating CL# 11427051 from Dev-Enterprise
Fixing 3dsMax exporter crash

#jira UE-86710
#rb none

#ROBOMERGE-SOURCE: CL 11461917 in //UE4/Release-4.25/... via CL 11461922
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11462458 by benoit deschenes in Main branch]
2020-02-17 14:24:16 -05:00
ben marsh
265c2ce558 Fix null reference when generating project files in binary release.
#rb none
#rnx
#jira UE-88874

#ROBOMERGE-SOURCE: CL 11461845 in //UE4/Release-4.25/... via CL 11461851
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11462438 by ben marsh in Main branch]
2020-02-17 14:24:05 -05:00
emil kirichev
c1d4343acf Wrong Normals orientation on wall entities exported from Revit Datasmith
Integrated from Dev-Enterprise (CL 11194428)

#jira UE-87522
#rb JeanLuc.Corenthin, David.Lesage

#ROBOMERGE-SOURCE: CL 11459071 in //UE4/Release-4.25/... via CL 11459072
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11462225 by emil kirichev in Main branch]
2020-02-17 14:21:03 -05:00
anthony bills
dc5bd3c24d [IOS] Check if the bundle exists before trying to copy manifests.
- This prevents an error being displayed in the log before staging.

[at]jack.porter
#jira UE-86335
#rb jack.porter

#ROBOMERGE-SOURCE: CL 11458335 in //UE4/Release-4.25/... via CL 11458336
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v654-11333218)

[CL 11462163 by anthony bills in Main branch]
2020-02-17 14:19:24 -05:00
benoit deschenes
3f4df78a67 Integrating CL# 11292240 from Dev-Enterprise
Fixing crash in 3ds Max Exporter, autodesk noise map are not supported.

#jira UE-88193
Julien.StJean
#rb Julien.StJean

#ROBOMERGE-SOURCE: CL 11462019 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11462031 by benoit deschenes in 4.25-Plus branch]
2020-02-17 14:07:50 -05:00
benoit deschenes
744f09c6c3 Integrating CL# 11427051 from Dev-Enterprise
Fixing 3dsMax exporter crash

#jira UE-86710
#rb none

#ROBOMERGE-SOURCE: CL 11461917 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11461922 by benoit deschenes in 4.25-Plus branch]
2020-02-17 13:59:14 -05:00
ben marsh
a2fcf13400 Fix null reference when generating project files in binary release.
#rb none
#rnx
#jira UE-88874

#ROBOMERGE-SOURCE: CL 11461845 in //UE4/Release-4.25/...
#ROBOMERGE-BOT: RELEASE (Release-4.25 -> Release-4.25Plus) (v654-11333218)

[CL 11461851 by ben marsh in 4.25-Plus branch]
2020-02-17 13:53:46 -05:00
josh engebretson
74cbd74362 Sanitize device reservation messages as these are not fatal for jobs
#rnx


#ROBOMERGE-SOURCE: CL 11459473 via CL 11459474 via CL 11459475
#ROBOMERGE-BOT: (v654-11333218)

[CL 11459476 by josh engebretson in Main branch]
2020-02-17 09:45:22 -05:00
max whitehead
8a4696d872 Update unit test for GJKRaycast2 ClosestB computation being wrong (capsule sweep vs RockWall trimesh).
#rb none


#ROBOMERGE-SOURCE: CL 11459191 via CL 11459192 via CL 11459195
#ROBOMERGE-BOT: (v654-11333218)

[CL 11459196 by max whitehead in Main branch]
2020-02-17 08:39:28 -05:00