Allow FShader::Finalize to be called multiple times, ensure index doesn't change
#rb none
#ROBOMERGE-SOURCE: CL 12958102 in //UE4/Release-4.25/... via CL 12958109 via CL 12959154
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12959964 by ben ingram in Main branch]
Fix issues causing material DDC values to be non-determinisic
- Shader code within resources sorted by hash
- Debug source code values sorted by type
Also add mechanism to serialize any MemoryLayout described type to string
- Makes it easier to inspect material data to find sources of non-determinism
#rb none
#ROBOMERGE-OWNER: ben.ingram
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 12944988 in //UE4/Release-4.25/... via CL 12944998 via CL 12957822
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12957827 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]
#rb: Rolando.Caloca
#jira: none
#ROBOMERGE-SOURCE: CL 12491544 in //UE4/Release-4.25/... via CL 12491551 via CL 12491558
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)
[CL 12491562 by zabir hoque in Main branch]
#jira ue-90726
#rb uriel.doyon
#ROBOMERGE-SOURCE: CL 12232768 in //UE4/Release-4.25/... via CL 12232770
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)
[CL 12234779 by john hable in Main branch]
New CVars:
- r.RayTracing.CompileMaterialCHS (default 1)
- r.RayTracing.CompileMaterialAHS (default 1)
The value is read-only and must match between cook-time and run-time.
#rb Krzysztof.Narkowicz
[FYI] Yuriy.ODonnell
#jira UE-90463
#ushell-cherrypick of 11541300 by Yuriy.ODonnell
#ROBOMERGE-SOURCE: CL 12202891 in //UE4/Release-4.25/... via CL 12202949
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v662-12191386)
[CL 12203392 by juan canada in Main branch]
#jira UE-89822
#rb jack.porter, dmitriy.dyomin, mi.wang
#ROBOMERGE-SOURCE: CL 11850481 in //UE4/Release-4.25/... via CL 11850482
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v656-11643781)
[CL 11850703 by wei liu in Main branch]
Fix potential null dereference
#rnx
#ROBOMERGE-SOURCE: CL 11292515 via CL 11292519 via CL 11292521 via CL 11292524
#ROBOMERGE-BOT: (v647-11244347)
[CL 11293015 by jeremy moore in Main branch]
Rearranged DDC key composition since we need to flush out incorrectly keyed shaders in the cache.
[FYI] mickael.gilabert
#ROBOMERGE-SOURCE: CL 11290017 via CL 11290018 via CL 11290019
#ROBOMERGE-BOT: (v647-11244347)
[CL 11290020 by jeremy moore in Main branch]
#rb Dmitriy.Dyomin, Jack.Porter
#jira UE-85333
#ROBOMERGE-SOURCE: CL 11278935 via CL 11278936 via CL 11278937
#ROBOMERGE-BOT: (v0-11244347)
[CL 11278938 by florin pascu in Main branch]
Disabled by default, set r.Mobile.VirtualTextures=1 to enable
known issues: RVT compression is not implementted, Android OpenGL will have R and G channels swapped for uncompressed streaming VT, no sRGB support
#jira UE-79955
#rb jeremy.moore
#ROBOMERGE-SOURCE: CL 11070636 via CL 11070637
#ROBOMERGE-BOT: (v637-11041722)
[CL 11070638 by dmitriy dyomin in Main branch]
#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
- Added shader pipeline hash as a key attribute.
- Added shaders from shader pipelines (they can have different code if RHI removes unused interpolators between the stages, like D3D does).
#rb Dmitriy.Dyomin, Richard.Wallis
#ROBOMERGE-SOURCE: CL 9959336 via CL 9959339 via CL 9959342
#ROBOMERGE-BOT: (v558-9892490)
[CL 9959347 by arciel rekman in Main branch]
This was done because of MALI GPU limitation of 64kb texture buffer
- Changed default Precision of compute shaders to highp
- Added Texture Buffer GPU Support mobile
- Texture path controlled by GPUSceneUseTexture2D(requires recompile of shaders)
#rb Dmitriy.Dyomin, zach.bethel
#jira UE-79954
#ROBOMERGE-OWNER: Florin.Pascu
#ROBOMERGE-AUTHOR: florin.pascu
#ROBOMERGE-SOURCE: CL 9742164 via CL 9742165
#ROBOMERGE-BOT: (v542-9736015)
[CL 9745770 by Florin Pascu in Main branch]