UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRenderTargetPool Class Reference

#include <RenderTargetPool.h>

+ Inheritance diagram for FRenderTargetPool:

Public Member Functions

 FRenderTargetPool ()=default
 
RENDERCORE_API TRefCountPtr< IPooledRenderTargetFindFreeElement (FRHICommandListBase &RHICmdList, FRHITextureCreateInfo Desc, const TCHAR *Name)
 
RENDERCORE_API bool FindFreeElement (FRHICommandListBase &RHICmdList, const FRHITextureCreateInfo &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const TCHAR *Name)
 
TRefCountPtr< IPooledRenderTargetFindFreeElement (FRHITextureCreateInfo Desc, const TCHAR *Name)
 
bool FindFreeElement (const FRHITextureCreateInfo &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const TCHAR *Name)
 
bool FindFreeElement (FRHICommandListBase &RHICmdList, const FPooledRenderTargetDesc &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const TCHAR *InDebugName)
 
RENDERCORE_API void CreateUntrackedElement (const FPooledRenderTargetDesc &Desc, TRefCountPtr< IPooledRenderTarget > &Out, const FSceneRenderTargetItem &Item)
 
RENDERCORE_API void GetStats (uint32 &OutWholeCount, uint32 &OutWholePoolInKB, uint32 &OutUsedInKB) const
 
RENDERCORE_API void TickPoolElements ()
 
RENDERCORE_API void ReleaseRHI ()
 
RENDERCORE_API void FreeUnusedResource (TRefCountPtr< IPooledRenderTarget > &In)
 
RENDERCORE_API void FreeUnusedResources ()
 
RENDERCORE_API FPooledRenderTargetGetElementById (uint32 Id) const
 
uint32 GetElementCount () const
 
RENDERCORE_API int32 FindIndex (IPooledRenderTarget *In) const
 
RENDERCORE_API void DumpMemoryUsage (FOutputDevice &OutputDevice)
 
- Public Member Functions inherited from FRenderResource
RENDERCORE_API FRenderResource ()
 
RENDERCORE_API FRenderResource (ERHIFeatureLevel::Type InFeatureLevel)
 
RENDERCORE_API FRenderResource (const FRenderResource &)
 
RENDERCORE_API FRenderResource (FRenderResource &&)
 
RENDERCORE_API FRenderResourceoperator= (const FRenderResource &Other)
 
RENDERCORE_API FRenderResourceoperator= (FRenderResource &&Other)
 
virtual RENDERCORE_API ~FRenderResource ()
 
virtual void InitRHI (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void InitResource (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void ReleaseResource ()
 
RENDERCORE_API void UpdateRHI (FRHICommandListBase &RHICmdList)
 
virtual FString GetFriendlyName () const
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 

Friends

struct FPooledRenderTarget
 
class FVisualizeTexture
 
class FVisualizeTexturePresent
 
class FRDGBuilder
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Static Public Member Functions inherited from FRenderResource
static RENDERCORE_API void ReleaseRHIForAllResources ()
 
static RENDERCORE_API void InitPreRHIResources ()
 
static RENDERCORE_API void ChangeFeatureLevel (ERHIFeatureLevel::Type NewFeatureLevel)
 
static RENDERCORE_API FName SetScopeName (FName Name)
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 
- Protected Member Functions inherited from FRenderResource
void SetFeatureLevel (const FStaticFeatureLevel InFeatureLevel)
 
const FStaticFeatureLevel GetFeatureLevel () const
 
bool HasValidFeatureLevel () const
 
template<typename T >
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList, T &InOutResourceObject, uint32 ResourceCount, EBufferUsageFlags InBufferUsageFlags, const TCHAR *InDebugName)
 
void SetInitPhase (EInitPhase InInitPhase)
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 

Detailed Description

Encapsulates the render targets pools that allows easy sharing (mostly used on the render thread side)

Constructor & Destructor Documentation

◆ FRenderTargetPool()

FRenderTargetPool::FRenderTargetPool ( )
default

Member Function Documentation

◆ CreateUntrackedElement()

void FRenderTargetPool::CreateUntrackedElement ( const FPooledRenderTargetDesc Desc,
TRefCountPtr< IPooledRenderTarget > &  Out,
const FSceneRenderTargetItem Item 
)

◆ DumpMemoryUsage()

void FRenderTargetPool::DumpMemoryUsage ( FOutputDevice OutputDevice)

◆ FindFreeElement() [1/5]

bool FRenderTargetPool::FindFreeElement ( const FRHITextureCreateInfo Desc,
TRefCountPtr< IPooledRenderTarget > &  Out,
const TCHAR Name 
)
inline

◆ FindFreeElement() [2/5]

bool FRenderTargetPool::FindFreeElement ( FRHICommandListBase RHICmdList,
const FPooledRenderTargetDesc Desc,
TRefCountPtr< IPooledRenderTarget > &  Out,
const TCHAR InDebugName 
)
inline
Parameters
DebugNamemust not be 0, we only store the pointer
Outis not the return argument to avoid double allocation because of wrong reference counting call from RenderThread only
Returns
true if the old element was still valid, false if a new one was assigned

◆ FindFreeElement() [3/5]

bool FRenderTargetPool::FindFreeElement ( FRHICommandListBase RHICmdList,
const FRHITextureCreateInfo Desc,
TRefCountPtr< IPooledRenderTarget > &  Out,
const TCHAR Name 
)

◆ FindFreeElement() [4/5]

TRefCountPtr< IPooledRenderTarget > FRenderTargetPool::FindFreeElement ( FRHICommandListBase RHICmdList,
FRHITextureCreateInfo  Desc,
const TCHAR Name 
)

◆ FindFreeElement() [5/5]

TRefCountPtr< IPooledRenderTarget > FRenderTargetPool::FindFreeElement ( FRHITextureCreateInfo  Desc,
const TCHAR Name 
)
inline

◆ FindIndex()

int32 FRenderTargetPool::FindIndex ( IPooledRenderTarget In) const

◆ FreeUnusedResource()

void FRenderTargetPool::FreeUnusedResource ( TRefCountPtr< IPooledRenderTarget > &  In)

Allows to remove a resource so it cannot be shared and gets released immediately instead a/some frame[s] later.

◆ FreeUnusedResources()

void FRenderTargetPool::FreeUnusedResources ( )

Good to call between levels or before memory intense operations.

◆ GetElementById()

FPooledRenderTarget * FRenderTargetPool::GetElementById ( uint32  Id) const

◆ GetElementCount()

uint32 FRenderTargetPool::GetElementCount ( ) const
inline

◆ GetStats()

void FRenderTargetPool::GetStats ( uint32 OutWholeCount,
uint32 OutWholePoolInKB,
uint32 OutUsedInKB 
) const

Only to get statistics on usage and free elements. Normally only called in renderthread or if FlushRenderingCommands was called()

◆ ReleaseRHI()

void FRenderTargetPool::ReleaseRHI ( )
virtual

Free renderer resources

Reimplemented from FRenderResource.

◆ TickPoolElements()

void FRenderTargetPool::TickPoolElements ( )

Can release RT, should be called once per frame. call from RenderThread only

Friends And Related Symbol Documentation

◆ FPooledRenderTarget

◆ FRDGBuilder

friend class FRDGBuilder
friend

◆ FVisualizeTexture

friend class FVisualizeTexture
friend

◆ FVisualizeTexturePresent


The documentation for this class was generated from the following files: