None of the shader compiling code runs in non-Editor mode, so don't compile it for those targets.
#jira none
#rb dan.elksnitis, jason.nadro
#preflight 635adca94710dd6af8673141
[CL 22839932 by christopher waters in ue5-main branch]
There were multiple copies of very similar logic that contained subtle inconsistencies. There is an upcoming need to add some extra information to the DDC key, so it makes sense to centralize the logic first.
Keep the publically exposed function SerializeUniformBufferInfo but mark is as deprecated to signal to any users of the old API that there is a better mechanism now that can save them some boilerplate.
#rb Jason.Nadro
#preflight 6351c8e4ae33b04ec1c3fb7b
[CL 22675267 by chris kulla in ue5-main branch]
Tweak some functions for reduction of duplication and readability.
#rb Jason.Nadro, Rob.Srinivasiah
#rnx
#preflight 630d0a4d501b64ba331b303f
[CL 21685434 by Matt Peters in ue5-main branch]
- shader got renamed so retarget the associated pre-processor defines to the new shader
- also convert the errors incurred to warnings as they should not be fatal to cooks
#rb Jamie.Hayes
#jira none
#preflight 6245b71c981a2c8eb4808dda
[CL 19573197 by eric mcdaniel in ue5-main branch]
- The cvar `r.Material.DumpDDCKeys` has been renamed to `r.ShaderCompiler.DumpDDCKeys`.
- The directory they output to changed from "MaterialDDCKeys" to "ShaderDDCKeys"
- Break getting the global shader map DDC key string out into a function to make it easier to call when we dump DDC keys.
- Global Shader map section files are named "GlobalShaderMap-%s" where %s is the name of the section (usually a global shader type).
- Editor and Game shaders are dumped to separated directories.
- Expose ShouldDumpShaderDDCKeys() function so material code can see if dumping is enabled.
#rb Arciel.Rekman
#jira none
#preflight 623a4f1110251d53d57a1da7
[CL 19479594 by Jason Nadro in ue5-main branch]
Correctly write to MemoryImageNames array, copy contents of TArrayView rather than the layout of the view object itself, handle name layout during patch application on foreign platforms.
#rb none
[FYI] johan.torp, ben.ingram
#ROBOMERGE-OWNER: Ben.Woodhouse
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 19068807 via CL 19068829 via CL 19074886 via CL 19075335 via CL 19077116
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19077183 by robert millar in ue5-main branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
- Frozen memory images may have de-duplicated sections, where the same object is referenced multiple times; this means default destructors might be called multiple times, which is not supported in general
- Add a hook to allow custom behavior to destroy frozen objects that may hold references to external resources
- Within shader system, no need to run destructors, since all memory should be owned by the top-level memory image
#jira none
#rb arciel.rekman, charles.bloom
#ROBOMERGE-SOURCE: CL 16278300 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v799-16237190)
[CL 16278915 by ben ingram in ue5-release-engine-test branch]
Improve behavior when global shades can't be loaded due to memory layout differences
(Trigger a fatal log mentioning missing global shaders, rather than simply crash on nullptr access)
#rb none
#ROBOMERGE-SOURCE: CL 12675920 in //UE4/Release-4.25/... via CL 12675925 via CL 12675937
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12675940 by ben ingram in Main branch]
- Shaders are searched by TypeName and PermutationId, so move those fields out of FShader and into separate arrays inside ShaderMap, to reduce cache misses while finding shaders
#rb none
#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 12646854 via CL 12646966 via CL 12646981
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12646995 by ben ingram in Main branch]
#rb none
#ROBOMERGE-SOURCE: CL 12579879 via CL 12579892 via CL 12579904
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v675-12543919)
[CL 12579927 by ben ingram in Main branch]