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]
#CodeReview: rolando.caloca,ben.marsh,cristina.riveron,nick.bullard,nick.penwarden
Merge conflict.
rolando.caloca, please merge this change by hand.
More info at https://robomerge.epicgames.net#RELEASE
/src/ROBOMERGE_RELEASE_Main/Engine/Plugins/FX/Niagara/Source/Niagara/Private/NiagaraEmitterInstanceBatcher.cpp - merging //UE4/Release-4.22/Engine/Plugins/FX/Niagara/Source/Niagara/Private/NiagaraEmitterInstanceBatcher.cpp#2
--------------------------------------
UE4.22 - Deprecate ENQUEUE_UNIQUE_RENDER_COMMAND_THREEPARAMETER
#rb none
#jira
#ROBOMERGE-SOURCE: CL 4932643 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 4932685 by Rolando Caloca in Main branch]
- This can be overriden per platform in the [ShaderCompiler] section of the platform's Engine.ini by adding "r.Shaders.KeepDebugInfo"
- Also add in support for exporting the debug info on platforms where it can be stripped and stored as separate files ("r.Shaders.ExportDebugInfo") and this is also per platform.
- Add "r.Shaders.ExportDebugInfoMode" to control how the exported files are stored, 0 for loose or 1 for an uncompressed archive.
#rb david.harvey
[FYI] luke.thatcher
#ROBOMERGE-SOURCE: CL 4867756 via CL 4871614
[CL 4875479 by anthony bills in Main branch]
* IntiViews
* Dispatch prepass parallel cmd list (flickering, as global buffers weren't committed).
* InitShadows.
* Commit global buffers (race condition and potential crash).
This was fixed by:
* Renamed FNiagaraGlobalReadBuffer to FGlobalDynamicReadBuffer and moved it out from Niagara.
* Removed all global buffer singletons and placed them inside appropriate renderers as static members.
* They are also separated into two - one for InitViews and one for InitShadows, so we can dispatch prepass while writing to the shadow global buffers.
* All global buffers are now passed as a parameter and/or through mesh collector.
#jira UE-69167
#rb Rolando.Caloca
#rnx
[CL 4871865 by Krzysztof Narkowicz in Main branch]
NiagaraEmitterInstanceBatcher now derives from FFXSystemInterface and is hooked to the new implementation.
Removed the FComputeDispatcher framework (which was only used for Niagara hooks)
#jira UE-67618
#rb Matt.Collins
[CL 4869109 by Uriel Doyon in Main branch]
- Some platforms have multiple sub formats per IShaderFormat
#rb david.harvey
[FYI] luke.thatcher
#ROBOMERGE-SOURCE: CL 4859289 via CL 4863633
[CL 4864171 by anthony bills in Main branch]
Wave intrinsics can be enabled for a shader by providing CFLAG_WaveOperations to the compiler flags in ModifyCompilationEnvironment().
Run-time availability must be queried by checking GRHISupportsWaveOperations before trying to use a shader that uses wave intrinsics.
Removed all RHI_RAYTRACING define checks from D3DShaderCompiler.cpp.
#lockdown rolando.caloca
#rb rolando.caloca
#jira UE-69133
[CL 4824116 by Yuriy ODonnell in Dev-Rendering branch]