- Add an optional param to OpenLibrary to not look for shader lib chunks (because there's strong thread contention surrounding FMountedPakFileInfo::KnownPakFilesAccessLock)
- Removed reading of shared-cooked override since that feature is obsolete
#rb Arciel.Rekman
#rnx
[CL 26815793 by dave belanger in 5.3 branch]
The views made by DumpGPU must be created with lifetime extension disabled, so they release the underlying resources immediately after each dump pass.
#rnx
#jira UE-157708
#rb Guillaume.Abadie, Zach.Bethel
[CL 26768279 by mihnea balta in 5.3 branch]
- PC previews of SM6 platforms weren't going to DXC correctly.
- Preview platform include paths weren't initialized when compiling with local-only shader compiles.
- A few preview platform DDSPI settings weren't being initialized correctly based on the capabilites of the preview format.
#rb arciel.rekman, dan.elksnitis
[CL 26587878 by christopher waters in 5.3 branch]
Before, tasks would only be enqueued whenever the mask was changed. If the pipeline file was opened after the mask was set, the task created as a result of the file opening would not be kicked off until the mask was set again (which could be never).
#pf 64b999681c55de20cf59e305
[CL 26545096 by daniele vettorel in 5.3 branch]
Fixed Nanite bugs with Atomic64Compatible on Mac
Fixed missing AtomicCompatible flags in NaniteCullRaster
Fixed incorrect image transition when using DumpGPU
#rb Luke.Thatcher
#jira UE-186909
[CL 26408393 by carl lloyd in 5.3 branch]
- Remove the condition causing SCW to automatically exit after a single job if HLSLcc was used. This doesn't appear to be beneficial; HLSLcc uses a lot of memory but does not appear to leak it, so we're wasting time spinning up new processes unnecessarily here. This allows us to deprecated the associated field in the compiler output and function in IShaderFormat.
- Strip out compiler invocations stats; this was not accurate in some cases and it was decided after discussion that at this point the effort to fix the problems was not worth the utility we get from it.
#rb Jason.Nadro
#rb Laura.Hermanns
[CL 26256807 by dan elksnitis in 5.3 branch]
- RHICreate{Vertex, Index, Structured}Buffer
- RHICreate{ShaderResource, UnorderedAccess}View
- RHIUpdateUniformBuffer
- Various initialization / locking methods for helper buffer types in RHIUtilities.h
The goal is to continue to force resource creation through command lists to avoid surprises with moving things off the render thread.
#rb christopher.waters
[CL 26183746 by zach bethel in 5.3 branch]
- Renaming GRHIGlobals.CurrentTextureMemorySize to GRHIGlobals.StreamingTextureMemorySizeInKB
- Renaming GRHIGlobals.CurrentRendertargetMemorySize to GRHIGlobals.NonStreamingTextureMemorySizeInKB
- Adding GRHIGlobals.BufferMemorySize and GRHIGlobals.UniformBufferMemorySize
- Deduplicating RHI stat accounting code and changing it to use RHI Descs.
- UE::RHICore::UpdateGlobalTextureStats is for StreamingTextureMemorySizeInKB and NonStreamingTextureMemorySizeInKB. This still allows platforms to control where the memory is counted.
- Adding more Buffer RHI stat accounting code to RHIs that were missing it.
- UE::RHICore::UpdateGlobalBufferStats is for BufferMemorySize and UniformBufferMemorySize.
- FillBaselineTextureMemoryStats initializes and fills the common members of FTextureMemoryStats.
- Adding ETextureCreateFlags::ForceIntoNonStreamingMemoryTracking which will force the texture to be counted in NonStreamingTextureMemorySizeInKB.
- Changing all RenderTargetPool textures to be flagged with ETextureCreateFlags::ForceIntoNonStreamingMemoryTracking so they aren't counted against streaming budgets.
- Adding UAV Texture stats instead of lumping them with regular textures
- Adding Buffer stats for ByteAddressBuffer, DrawIndirect and Misc
#jira UE-188415
#rb mihnea.balta, zach.bethel
[CL 26158700 by christopher waters in 5.3 branch]
r.ShaderPipelines
r.Material.ExcludeNonPipelinedShaders
Both cvars are currently disable on WindowsEngine.ini which make them also disable when we cook for consoles. ExcludeNonPipelinedShaderTypes is currently used only at cooking time when we compile shaders which is currently returning false, since the value is disabled on windows. Making those cvars use FShaderPlatformCachedIniValue, will allow to have specific platform value when cooking for a specific target. Moving r.Material.ExcludeNonPipelinedShaders to the defaultengine.ini file to keep it disable for the moment and not affecting shader key string. Will enable it progressively on console later.
r.Shaders.RemoveUnusedInterpolators
Make that cvar platform agnostic, since it will be used in on other consoles eventually. Platforms supporting the stripping of unused interpolators will check the same flag (CFLAG_ForceRemoveUnusedInterpolators) to enable it. Since windows can run opengl, and stripping is not supported on that shader platform, add extra logic to exclude the flag.
-Make the RHISupportsShaderPipelines function access a real DDPI attribute and not just test if we are not on mobile. Will need this to be able to have stripping unused shader interpolators on Switch.
[REVIEW] Laura.Hermanns
[CL 26038736 by serge bernier in 5.3 branch]