- Allows construction of StatePrecachePSOHash in FGraphicsPipelineStateInitializers that are not associated with MDCs.
- Also better reflects the actual PSO compatibility.
[REVIEW] [at]Graham.Wihlidal, [at]Kenzo.TerElst
#preflight
[CL 23300306 by arciel rekman in ue5-main branch]
This change prevents the cache being polluted by shader maps with forcibly released shaders.
[REVIEW] [at]arciel.rekman, [at]robert.millar
#rnx
[CL 23300180 by mickael gilabert in ue5-main branch]
- Library deletion flushes render commands, but the rendering thread may be trying to access the libraries stack (for which it needs to acquire NamedLibrariesMutex), so holding that mutex during the deletion results in a deadlock. This change makes the deletion happen after the mutex is released.
- The mutex only guards the NamedLibrariesStack, not contents of any given library. It is still possible that a library being deleted is accessed by another thread that got a pointer to it beforehand, this change does not change anything in that regard. However, this should not happen if the higher level removes all the content from the unmounted plugin from memory prior to unmounting it (and closing the library), which it should do.
#rb CM Nordin, Justin Marcus
[REVIEW] [at]CarlMagnus.Nordin, [at]Mihnea.Balta, [at]Justin.Marcus
#preflight 637691b7b1509f1cc3094063
[CL 23190970 by arciel rekman in ue5-main branch]
- Also, add flushing the pending deletes in the attempt to make sure any leftover RHI resources from the assets that used that library (which should be already queued for deletion at this point) are deleted before we remove the backing storage.
#rb Rex.Hill, Justin.Marcus, Luke.Thatcher
[REVIEW] [at]Rex.Hill
#preflight 636a7adb376a9cd6a856decc
[CL 23034312 by arciel rekman in ue5-main branch]
- Avoids oversubscription deadlock when multiple background threads are creating shaders during the PSO precaching.
#rb CM Nordin, Yuriy O'Donnell
#jira UE-166109
#review
#preflight 6365bb2b4b0e01486a9753be
[CL 23010571 by Arciel Rekman 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]
Splitt PSO cache code to separate out bundled game caches and a single PSO recording user cache.
Any additional PSO caches are enqueued when the shader library state change adds shader library components.
removed unused PSO SaveMode::SortedBoundPSOs.
#rb dmytro.vovk, peter.sauerbrei
#preflight 62d568481062f2e63007eafd
#preflight 62d5a99b2e3e5993c3bd473f
#ROBOMERGE-AUTHOR: allan.bentham
#ROBOMERGE-SOURCE: CL 21152209 via CL 21154820 via CL 21156073
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21181749 by allan bentham in ue5-main branch]
Changed ShaderArchive, GlobalShaderCache, ShaderDebugInfo and Autogen to use ShaderPlatformName and not ShaderFormat when naming their output files.
#rb Jack.Porter, Chris.Waters, Mihnea.Balta, Jason.Nadro
#jira UE-120561
#preflight 62c31f6fc9410537282296c6
[CL 20937870 by Florin Pascu in ue5-main branch]
- Add a new API to release preloaded shader to provide a way to manage preloaded data (which was previously statically allocated).
#rb James.Doverspike, Richard.Wallis
[REVIEW] [at]Allan.Bentham, [at]Richard.Wallis
#preflight 625e11c4db15ac92db7ee858
#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 19832275 via CL 19833640 via CL 19837454 via CL 19854946 via CL 19855339
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19856713 by arciel rekman in ue5-main branch]