9#include "Containers/Array.h"
38 return UnusedForNFrames;
45 return uint32(FPlatformAtomics::InterlockedIncrement(&NumRefs));
50 const int32 Refs = FPlatformAtomics::InterlockedDecrement(&NumRefs);
64 bool IsTracked()
const override {
return RenderTargetPool !=
nullptr; }
77 mutable int32 NumRefs = 0;
80 uint32 UnusedForNFrames = 0;
165 template <
typename T>
196 uint32 AllocationLevelInKB = 0;
199 bool bCurrentlyOverBudget =
false;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
D3D12_DESCRIPTOR_HEAP_TYPE Translate(ERHIDescriptorHeapType InHeapType)
Definition D3D12Descriptors.h:19
RENDERCORE_API TGlobalResource< FRenderTargetPool > GRenderTargetPool
Definition RenderTargetPool.cpp:13
Definition OutputDevice.h:133
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:537
Definition RenderGraphResources.h:571
Definition RHICommandList.h:455
Definition RHICommandList.h:3819
Definition RHIResources.h:2153
Definition RHITransientResourceAllocator.h:23
Definition RenderResource.h:37
Definition RenderTargetPool.h:97
RENDERCORE_API TRefCountPtr< IPooledRenderTarget > FindFreeElement(FRHICommandListBase &RHICmdList, FRHITextureCreateInfo Desc, const TCHAR *Name)
Definition RenderTargetPool.cpp:199
RENDERCORE_API void FreeUnusedResources()
Definition RenderTargetPool.cpp:487
RENDERCORE_API void GetStats(uint32 &OutWholeCount, uint32 &OutWholePoolInKB, uint32 &OutUsedInKB) const
Definition RenderTargetPool.cpp:287
RENDERCORE_API void TickPoolElements()
Definition RenderTargetPool.cpp:315
FRenderTargetPool()=default
RENDERCORE_API void CreateUntrackedElement(const FPooledRenderTargetDesc &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const FSceneRenderTargetItem &Item)
Definition RenderTargetPool.cpp:280
RENDERCORE_API FPooledRenderTarget * GetElementById(uint32 Id) const
Definition RenderTargetPool.cpp:613
bool FindFreeElement(FRHICommandListBase &RHICmdList, const FPooledRenderTargetDesc &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const TCHAR *InDebugName)
Definition RenderTargetPool.h:121
TRefCountPtr< IPooledRenderTarget > FindFreeElement(FRHITextureCreateInfo Desc, const TCHAR *Name)
Definition RenderTargetPool.h:105
RENDERCORE_API void ReleaseRHI()
Definition RenderTargetPool.cpp:605
RENDERCORE_API int32 FindIndex(IPooledRenderTarget *In) const
Definition RenderTargetPool.cpp:432
bool FindFreeElement(const FRHITextureCreateInfo &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const TCHAR *Name)
Definition RenderTargetPool.h:110
RENDERCORE_API void FreeUnusedResource(TRefCountPtr< IPooledRenderTarget > &In)
Definition RenderTargetPool.cpp:460
uint32 GetElementCount() const
Definition RenderTargetPool.h:152
RENDERCORE_API void DumpMemoryUsage(FOutputDevice &OutputDevice)
Definition RenderTargetPool.cpp:530
Definition VisualizeTexturePresent.h:8
Definition VisualizeTexture.h:25
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition RenderResource.h:543
Definition RefCounting.h:454
Definition RecursiveMutex.h:19
U16 Index
Definition radfft.cpp:71
Definition RendererInterface.h:81
Definition RenderTargetPool.h:27
RENDERCORE_API bool IsFree() const override
Definition RenderTargetPool.cpp:709
uint32 AddRef() const override
Definition RenderTargetPool.h:43
uint32 GetUnusedForNFrames() const
Definition RenderTargetPool.h:36
uint32 Release() override
Definition RenderTargetPool.h:48
RENDERCORE_API uint32 ComputeMemorySize() const override
Definition RenderTargetPool.cpp:679
FPooledRenderTarget(FRHITexture *Texture, const FPooledRenderTargetDesc &InDesc, FRenderTargetPool *InRenderTargetPool)
Definition RenderTargetPool.h:28
const FPooledRenderTargetDesc & GetDesc() const override
Definition RenderTargetPool.h:41
uint32 GetRefCount() const override
Definition RenderTargetPool.h:58
bool IsTracked() const override
Definition RenderTargetPool.h:64
Definition RHIResources.h:1689
Definition RendererInterface.h:453
FTextureRHIRef ShaderResourceTexture
Definition RendererInterface.h:484
FTextureRHIRef TargetableTexture
Definition RendererInterface.h:481
Definition RendererInterface.h:494
FSceneRenderTargetItem RenderTargetItem
Definition RendererInterface.h:524