UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PipelineStateCache Namespace Reference

Functions

RHI_API void WaitForAllTasks ()
 
int32 GetCacheIndexForCurrentThread ()
 
RHI_API uint64 RetrieveGraphicsPipelineStateSortKey (const FGraphicsPipelineState *GraphicsPipelineState)
 
RHI_API FComputePipelineStateGetAndOrCreateComputePipelineState (FRHIComputeCommandList &RHICmdList, FRHIComputeShader *ComputeShader, bool bFromFileCache)
 
RHI_API FWorkGraphPipelineStateGetAndOrCreateWorkGraphPipelineState (FRHIComputeCommandList &RHICmdList, const FWorkGraphPipelineStateInitializer &Initializer)
 
RHI_API FGraphicsPipelineStateGetAndOrCreateGraphicsPipelineState (FRHICommandList &RHICmdList, const FGraphicsPipelineStateInitializer &OriginalInitializer, EApplyRendertargetOption ApplyFlags)
 
RHI_API FComputePipelineStateFindComputePipelineState (FRHIComputeShader *ComputeShader, bool bVerifyUse=true)
 
RHI_API FWorkGraphPipelineStateFindWorkGraphPipelineState (const FWorkGraphPipelineStateInitializer &Initializer, bool bVerifyUse=true)
 
RHI_API FGraphicsPipelineStateFindGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer, bool bVerifyUse=true)
 
RHI_API void GetPipelineStates (TArray< TRefCountPtr< FRHIResource > > &Out, bool bConsolidateCaches=true, UE::FTimeout ConsolidationTimeout=UE::FTimeout::Never())
 
RHI_API FRHIVertexDeclarationGetOrCreateVertexDeclaration (const FVertexDeclarationElementList &Elements)
 
RHI_API FRayTracingPipelineStateGetAndOrCreateRayTracingPipelineState (FRHICommandList &RHICmdList, const FRayTracingPipelineStateInitializer &Initializer, ERayTracingPipelineCacheFlags Flags=ERayTracingPipelineCacheFlags::Default)
 
RHI_API FRayTracingPipelineStateGetRayTracingPipelineState (const FRayTracingPipelineStateSignature &Signature)
 
RHI_API void FlushResources ()
 
RHI_API void ReportFrameHitchToCSV ()
 
RHI_API void Init ()
 
RHI_API void Shutdown ()
 
RHI_API void PreCompileComplete ()
 
RHI_API int32 GetNumActivePipelinePrecompileTasks ()
 
RHI_API bool IsPSOPrecachingEnabled ()
 
RHI_API FPSOPrecacheRequestResult PrecacheComputePipelineState (FRHIComputeShader *ComputeShader, const TCHAR *Name=nullptr, bool bForcePrecache=false)
 
RHI_API FPSOPrecacheRequestResult PrecacheGraphicsPipelineState (const FGraphicsPipelineStateInitializer &PipelineStateInitializer)
 
RHI_API EPSOPrecacheResult CheckPipelineStateInCache (const FGraphicsPipelineStateInitializer &PipelineStateInitializer)
 
RHI_API EPSOPrecacheResult CheckPipelineStateInCache (FRHIComputeShader *ComputeShader)
 
RHI_API bool IsPrecaching (const FPSOPrecacheRequestID &PSOPrecacheRequestID)
 
RHI_API bool IsPrecaching (const FGraphicsPipelineStateInitializer &PipelineStateInitializer)
 
RHI_API bool IsPrecaching (FRHIComputeShader *ComputeShader)
 
RHI_API bool IsPrecaching ()
 
RHI_API void BoostPrecachePriority (EPSOPrecachePriority PSOPrecachePriority, const FPSOPrecacheRequestID &PSOPrecacheRequestID)
 
RHI_API uint32 NumActivePrecacheRequests ()
 
RHI_API void PrecachePSOsBoostToHighestPriority (bool bForceHighest)
 
RHI_API FPSORuntimeCreationStats GetPSORuntimeCreationStats ()
 
RHI_API void ResetPSOHitchTrackingStats ()
 

Variables

constexpr int32 RenderThreadIndex = 0
 
constexpr int32 RHIThreadIndex = 1
 

Function Documentation

◆ BoostPrecachePriority()

void PipelineStateCache::BoostPrecachePriority ( EPSOPrecachePriority  PSOPrecachePriority,
const FPSOPrecacheRequestID PSOPrecacheRequestID 
)
extern

◆ CheckPipelineStateInCache() [1/2]

EPSOPrecacheResult PipelineStateCache::CheckPipelineStateInCache ( const FGraphicsPipelineStateInitializer PipelineStateInitializer)
extern

◆ CheckPipelineStateInCache() [2/2]

EPSOPrecacheResult PipelineStateCache::CheckPipelineStateInCache ( FRHIComputeShader ComputeShader)
extern

◆ FindComputePipelineState()

FComputePipelineState * PipelineStateCache::FindComputePipelineState ( FRHIComputeShader ComputeShader,
bool  bVerifyUse = true 
)
extern

◆ FindGraphicsPipelineState()

FGraphicsPipelineState * PipelineStateCache::FindGraphicsPipelineState ( const FGraphicsPipelineStateInitializer Initializer,
bool  bVerifyUse = true 
)
extern

◆ FindWorkGraphPipelineState()

FWorkGraphPipelineState * PipelineStateCache::FindWorkGraphPipelineState ( const FWorkGraphPipelineStateInitializer Initializer,
bool  bVerifyUse = true 
)
extern

◆ FlushResources()

RHI_API void PipelineStateCache::FlushResources ( )
extern

Called at the end of each frame during the RHI . Evicts all items left in the backfill cached based on time

◆ GetAndOrCreateComputePipelineState()

FComputePipelineState * PipelineStateCache::GetAndOrCreateComputePipelineState ( FRHIComputeCommandList RHICmdList,
FRHIComputeShader ComputeShader,
bool  bFromFileCache 
)
extern

◆ GetAndOrCreateGraphicsPipelineState()

FGraphicsPipelineState * PipelineStateCache::GetAndOrCreateGraphicsPipelineState ( FRHICommandList RHICmdList,
const FGraphicsPipelineStateInitializer OriginalInitializer,
EApplyRendertargetOption  ApplyFlags 
)
extern

◆ GetAndOrCreateRayTracingPipelineState()

FRayTracingPipelineState * PipelineStateCache::GetAndOrCreateRayTracingPipelineState ( FRHICommandList RHICmdList,
const FRayTracingPipelineStateInitializer Initializer,
ERayTracingPipelineCacheFlags  Flags = ERayTracingPipelineCacheFlags::Default 
)
extern

◆ GetAndOrCreateWorkGraphPipelineState()

FWorkGraphPipelineState * PipelineStateCache::GetAndOrCreateWorkGraphPipelineState ( FRHIComputeCommandList RHICmdList,
const FWorkGraphPipelineStateInitializer Initializer 
)
extern

◆ GetCacheIndexForCurrentThread()

int32 PipelineStateCache::GetCacheIndexForCurrentThread ( )

◆ GetNumActivePipelinePrecompileTasks()

int32 PipelineStateCache::GetNumActivePipelinePrecompileTasks ( )
extern

◆ GetOrCreateVertexDeclaration()

FRHIVertexDeclaration * PipelineStateCache::GetOrCreateVertexDeclaration ( const FVertexDeclarationElementList Elements)
extern

◆ GetPipelineStates()

void PipelineStateCache::GetPipelineStates ( TArray< TRefCountPtr< FRHIResource > > &  Out,
bool  bConsolidateCaches = true,
UE::FTimeout  ConsolidationTimeout = UE::FTimeout::Never() 
)
extern

◆ GetPSORuntimeCreationStats()

FPSORuntimeCreationStats PipelineStateCache::GetPSORuntimeCreationStats ( )
extern

◆ GetRayTracingPipelineState()

FRayTracingPipelineState * PipelineStateCache::GetRayTracingPipelineState ( const FRayTracingPipelineStateSignature Signature)
extern

◆ Init()

void PipelineStateCache::Init ( )
extern

◆ IsPrecaching() [1/4]

bool PipelineStateCache::IsPrecaching ( )
extern

◆ IsPrecaching() [2/4]

bool PipelineStateCache::IsPrecaching ( const FGraphicsPipelineStateInitializer PipelineStateInitializer)
extern

◆ IsPrecaching() [3/4]

bool PipelineStateCache::IsPrecaching ( const FPSOPrecacheRequestID PSOPrecacheRequestID)
extern

◆ IsPrecaching() [4/4]

bool PipelineStateCache::IsPrecaching ( FRHIComputeShader ComputeShader)
extern

◆ IsPSOPrecachingEnabled()

bool PipelineStateCache::IsPSOPrecachingEnabled ( )
extern

◆ NumActivePrecacheRequests()

uint32 PipelineStateCache::NumActivePrecacheRequests ( )
extern

◆ PrecacheComputePipelineState()

FPSOPrecacheRequestResult PipelineStateCache::PrecacheComputePipelineState ( FRHIComputeShader ComputeShader,
const TCHAR Name = nullptr,
bool  bForcePrecache = false 
)
extern

◆ PrecacheGraphicsPipelineState()

FPSOPrecacheRequestResult PipelineStateCache::PrecacheGraphicsPipelineState ( const FGraphicsPipelineStateInitializer PipelineStateInitializer)
extern

◆ PrecachePSOsBoostToHighestPriority()

void PipelineStateCache::PrecachePSOsBoostToHighestPriority ( bool  bForceHighest)
extern

◆ PreCompileComplete()

void PipelineStateCache::PreCompileComplete ( )
extern

◆ ReportFrameHitchToCSV()

void PipelineStateCache::ReportFrameHitchToCSV ( )
extern

◆ ResetPSOHitchTrackingStats()

void PipelineStateCache::ResetPSOHitchTrackingStats ( )
extern

◆ RetrieveGraphicsPipelineStateSortKey()

uint64 PipelineStateCache::RetrieveGraphicsPipelineStateSortKey ( const FGraphicsPipelineState GraphicsPipelineState)
extern

◆ Shutdown()

void PipelineStateCache::Shutdown ( )
extern

◆ WaitForAllTasks()

RHI_API void PipelineStateCache::WaitForAllTasks ( )
extern

Variable Documentation

◆ RenderThreadIndex

constexpr int32 PipelineStateCache::RenderThreadIndex = 0
constexpr

◆ RHIThreadIndex

constexpr int32 PipelineStateCache::RHIThreadIndex = 1
constexpr