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 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]
- 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]
GRHISupportsRayTracing is now checked before attempting to create a ray tracing shader.
#rb yujiang.wang
[CL 4695562 by Yuriy ODonnell in Dev-Rendering branch]
This notably implements SHADER_USE_ROOT_PARAMETER_STRUCT(), that is able to generate a cbuffer
for the shader's FParameters struct automatically, without requiring passing through a global shader parameter struct.
#rb yuriy.odonnell, patrick.kelly
[CL 4588603 by Guillaume Abadie in Dev-Rendering branch]
When generating shader map key, need to fallback to forward shading cvar in the case where shader platform doesn't match any target platforms
This matches an exisiting fix in ShaderCompiler.cpp, when deciding to append the 'FORWARD_SHADING' macro
#rb marcus.wassmer
[CL 4573442 by Ben Ingram in Dev-Rendering 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]