Integrate all cook -iterate optimizations from //UE4/Dev-core/...
Test Scenario:
1) BuildCookStageAndRun with these arguments: -platform=Win64 -configuration=Development
2) CookIterate with these arguments: -run=Cook -CookCultures=en -TargetPlatform=WindowsClient -unversioned -stdout -unattended -iterate
Wall Time Results (as an average of running step 2) two times):
Before: ~09:40 (580 seconds) cook commandlet time
After: ~02:30 (150 seconds) cook commandlet time
=> 07:10 (430 seconds ) faster, i.e. a ~ 3.9x speedup
Win32 FileSystem Results:
Before: 1.5 million GetFileAttribute calls and 1.2 million FindNextFile calls
After: 35 0000 GetFileAttribute calls and 1.6 million FindNextFile calls
=> ~400 000 calls to FindNextFile replaces ~1.5 million calls to GetFileAttribute
#rb none
#ROBOMERGE-SOURCE: CL 5533504 via CL 5533655
[CL 5536177 by pj kack in Main branch]
Manual merge of CL 4940744 because robomerge had issues.
Original Description:
Merging //Fortnite/Dev-Kairos to Main (//Fortnite/Main)
Getting ready for Install Bundle Manager merge to main. These are Engine/Core fixes
4440445
Fix FBuildPatchInstaller::Initialize() failing for manifests that did not include the empty tag.
#jira no jira
#rb Leigh.Swift
4474598
Add Android Macros to disable optimization
Fix Android directory iteration for OBBs. FindFilesRecursive() now works.
#jira UEATM-177
#rb Chris.Babcock
4487221
Android file - When mounting an OBB, fix possibly mounting directories as files.
#rb Chris.Babcock
4511214
Fix Android directory iteration not returning the visitor result. This would cause IPlatformFile::FindFilesRecursively() to prematurely end iteration.
#rb Chris.Babcock
4670945
Fix GetVarArgs format specifier off by 1 error. These would only show up if you had the format specifier at the end of the format string and only with 'l' and not 'll'. In that case the code would walk off the end of the format string, usually into another static string.
Fix GetVarArgs to never walk off the end of the format string.
#rb [at]ben.ziegler
4746778
Fix FShaderCodeEntry ref counts being off by one.
This bug was exposed because [Project Name Redacted] doesn't load shaderlibs or the PSO cache until well after engine init. That means some FShaderResource's are loaded before shader libs or PSO cache and FShaderCodeLibrary::RequestShaderCode() can fail in FShaderResource::SerializeShaderCode().
#rb [at]Gil.Gribb [at]Chris.Babcock
[CL 4948018 by Justin Marcus in Main branch]
This implements the framework to write the high level rendering code into passes organized in direct acyclic graph. It is also unifying the uniform buffer, shader parameters, and pass parameters to same single API: structures with run time meta data. This allow high level user code be extremely seamless, user code debugging, and render graph ease of implementation and debugging.
Issue of collaborative work of Arne Schnober, Brian Karis, Daniel Wright, Marcus Wassmer and Guillaume Abadie.
Names of the graph managed resources are not final.
#rb Arne.Schnober, Brian.Karis, Daniel.Wright, Marcus.Wassmer
[CL 4492694 by Guillaume Abadie in Dev-Rendering branch]