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]
#rb rolando.caloca arne.schober
[FYI] richard.wallis matt.collins michael.trepka
#ROBOMERGE-SOURCE: CL 11291585 via CL 11291586
#ROBOMERGE-BOT: (v647-11244347)
[CL 11291616 by will damon in Main branch]
#rb chris.bunner, ben.salem
[FYI] will.fissler, michael.trepka
#ROBOMERGE-SOURCE: CL 11291332 via CL 11291336 via CL 11291342 via CL 11291348
#ROBOMERGE-BOT: (v647-11244347)
[CL 11291349 by peter sauerbrei 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]
- Previously the order of shaders would be defined by the order of adding them, which can vary even without any change due to SCWs finishing the jobs at a different time.
- Fixed a previous compile issue and added comments re: TSortedMap and TMap compatibility after checking with the Core team.
#rb Daniel.Lamb (discussed)
[CODEREVIEW] Dmitriy.Dyomin
#ROBOMERGE-SOURCE: CL 11248093 via CL 11248095 via CL 11248101
#ROBOMERGE-BOT: (v647-11244347)
[CL 11254818 by arciel rekman in Main branch]
[FYI] Arciel.Rekman
#ROBOMERGE-SOURCE: CL 11225960 via CL 11228025 via CL 11228838
#ROBOMERGE-BOT: (v644-11213502)
[CL 11241725 by bob tellez in Main branch]
- Previously the order of shaders would be defined by the order of adding them, which can vary even without any change due to SCWs finishing the jobs at a different time.
#rb Daniel.Lamb (discussed)
[CODEREVIEW] Dmitriy.Dyomin
#ROBOMERGE-SOURCE: CL 11224248 via CL 11227707 via CL 11228378
#ROBOMERGE-BOT: (v644-11213502)
[CL 11241606 by arciel rekman in Main branch]
[FYI] Krzysztof.Narkowicz,Ben.Woodhouse
#ROBOMERGE-SOURCE: CL 11206777 via CL 11206820 via CL 11206876
#ROBOMERGE-BOT: (v643-11205221)
[CL 11206936 by jian ru in Main branch]
- Optimize parsing of FVertexElement, FDepthStencilStateInitializerRHI, FBlendStateInitializerRHI, FPipelineFileCacheRasterizerState, FPipelineCacheFileFormatPSO using FStringView and TArray<FStringView, TInlineAllocator<N>> to avoid temporary allocations.
- Optimize parsing and string conversion of FCompactFullName, FStableShaderKeyAndValue using FStringView and T[Ansi]StringBuilder to avoid temporary allocations.
- Use TInlineAllocator<16> for FCompactFullName to eliminate dynamic allocations. The size was selected by profiling a title with many shaders.
- Serialize FEditorShaderStableInfo directly to UTF-8 instead of converting to it later to avoid converting every name from ASCII to UTF-16 to UTF-8 during the serialization process.
- Load input files in parallel now that millions of allocations have been eliminated.
- Make the PSOSC serialization self-test only run when verbose logging is enabled.
- Optimize ParseQuoteComma by using FStringView and TArray<FStringView, TInlineAllocator<N>> to avoid temporary allocations.
These changes reduced the execution time of the build command by 90% on a large title. The time savings affect full, iterative, and single-package cooks.
#rb Arciel Rekman, Zousar.Shaker
#ushell-cherrypick of 10860101 by devin.doucette
#ROBOMERGE-SOURCE: CL 11163162 via CL 11163163 via CL 11163164
#ROBOMERGE-BOT: (v640-11091645)
[CL 11166858 by devin doucette in Main branch]