FPipelineCacheFileFormatPSO::Init() used to assume that a vertex declaration is present in the pipeline initializer. However, this may not be the case when mesh shaders are used.
#rb Jason.Nadro
#preflight 6262b821d558dfdec38ee839
[CL 19865181 by Yuriy ODonnell in ue5-main branch]
- PSO cache was not being picked up due to a "race condition" when mounting pak files. What seems to have been happening is that we would open the shader library at the time when one of the chunks (other than chunk 0, which holds the PSO cache) got mounted, then proceed to open the PSO cache, and failed to do so (because chunk 0 isn't yet available). However, since we have the user cache on PC, we didn't completely fail to open it. Instead, the call treated it as if we didn't have a bundled one, and created only the user part to write to. That made the call to open the PSO cache non-reenterable, as subsequent attempts to open the bundled cache (when chunk0 was finally mounted) were ignored.
- Also set name to stable.upipelinecache by default as this is the name produced during the cook by default.
#rb Chris.Genova, James.Doverspike
[REVIEW] [at]Chris.Genova, [at]James.Doverspike
#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 19316228 via CL 19316237 via CL 19316241 via CL 19316874 via CL 19317194 via CL 19317199
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19347783 by arciel rekman in ue5-main branch]
Enable PSO cache CVars by default on Windows. This has no effect on D3D11 since the cache is disabled if GRHISupportsPipelineFileCache is false.
#ROBOMERGE-AUTHOR: chris.genova
#ROBOMERGE-SOURCE: CL 18785319 via CL 18785326 via CL 18785329 via CL 18785330 via CL 18785331 via CL 18785353 via CL 18785366
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18785369 by chris genova in ue5-main branch]
- Better memory savings are on the way, whereas this approach seems to invite deadlocks, due to CreateShader() kicking off async tasks while holding a lock that may be contended by the worker threads (needed to execute the said tasks).
#rb Chris.Waters
[REVIEW] [at]Christopher.Waters
#jira UE-138111
#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18647719 via CL 18647754 via CL 18647843 via CL 18653893 via CL 18653944 via CL 18653970
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)
[CL 18654002 by arciel rekman in ue5-main branch]
- Reduces Shaders LLM greatly, at the expense of possible hitches if the cache isn't complete.
#rb Chris.Genova
[REVIEW] [at]Dmitriy.Dyomin, [at]Chris.Genova, [at]James.Doverspike
#jira UE-136845
#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18449827 via CL 18449868 via CL 18449870 via CL 18450176 via CL 18450187
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18450199 by arciel rekman in ue5-release-engine-test branch]
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test 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]
#ROBOMERGE-OWNER: chris.genova
#ROBOMERGE-AUTHOR: chris.genova
#ROBOMERGE-SOURCE: CL 16396552 via CL 16396558 via CL 16397503 via CL 16397588 via CL 16399227
#ROBOMERGE-BOT: (v804-16311228)
#ROBOMERGE-CONFLICT from-shelf
[CL 16405290 by chris genova in ue5-release-engine-staging branch]