UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PipelineStateCache.h File Reference
#include "CoreMinimal.h"
#include "RHI.h"
#include "Misc/Timeout.h"
#include "Misc/EnumClassFlags.h"

Go to the source code of this file.

Classes

struct  FPSOPrecacheRequestID
 
struct  FPSOPrecacheRequestResult
 
struct  FPSORuntimeCreationStats
 

Namespaces

namespace  PipelineStateCache
 

Enumerations

enum class  EApplyRendertargetOption : int { DoNothing = 0 , CheckApply = 1 << 0 , ForceApply = CheckApply }
 
enum class  EPSOPrecachePriority : uint8 { Medium , High , Highest }
 
enum class  ERayTracingPipelineCacheFlags : uint8 { Default = 0 , NonBlocking = 1 << 0 }
 
enum class  EPSOPrecacheResult {
  Unknown , Active , Complete , Missed ,
  TooLate , NotSupported , Untracked
}
 

Functions

 ENUM_CLASS_FLAGS (EApplyRendertargetOption)
 
 ENUM_CLASS_FLAGS (ERayTracingPipelineCacheFlags)
 
RHI_API const TCHARLexToString (EPSOPrecacheResult Result)
 
RHI_API void SetComputePipelineState (FRHIComputeCommandList &RHICmdList, FRHIComputeShader *ComputeShader)
 
RHI_API void SetGraphicsPipelineStateCheckApply (FRHICommandList &RHICmdList, const FGraphicsPipelineStateInitializer &Initializer, uint32 StencilRef, bool bApplyAdditionalState=true)
 
RHI_API void SetGraphicsPipelineState (FRHICommandList &RHICmdList, const FGraphicsPipelineStateInitializer &Initializer, uint32 StencilRef, EApplyRendertargetOption ApplyFlags=EApplyRendertargetOption::CheckApply, bool bApplyAdditionalState=true)
 
RHI_API uint64 PipelineStateCache::RetrieveGraphicsPipelineStateSortKey (const FGraphicsPipelineState *GraphicsPipelineState)
 
RHI_API FComputePipelineStatePipelineStateCache::GetAndOrCreateComputePipelineState (FRHIComputeCommandList &RHICmdList, FRHIComputeShader *ComputeShader, bool bFromFileCache)
 
RHI_API FWorkGraphPipelineStatePipelineStateCache::GetAndOrCreateWorkGraphPipelineState (FRHIComputeCommandList &RHICmdList, const FWorkGraphPipelineStateInitializer &Initializer)
 
RHI_API FGraphicsPipelineStatePipelineStateCache::GetAndOrCreateGraphicsPipelineState (FRHICommandList &RHICmdList, const FGraphicsPipelineStateInitializer &OriginalInitializer, EApplyRendertargetOption ApplyFlags)
 
RHI_API FComputePipelineStatePipelineStateCache::FindComputePipelineState (FRHIComputeShader *ComputeShader, bool bVerifyUse=true)
 
RHI_API FWorkGraphPipelineStatePipelineStateCache::FindWorkGraphPipelineState (const FWorkGraphPipelineStateInitializer &Initializer, bool bVerifyUse=true)
 
RHI_API FGraphicsPipelineStatePipelineStateCache::FindGraphicsPipelineState (const FGraphicsPipelineStateInitializer &Initializer, bool bVerifyUse=true)
 
RHI_API void PipelineStateCache::GetPipelineStates (TArray< TRefCountPtr< FRHIResource > > &Out, bool bConsolidateCaches=true, UE::FTimeout ConsolidationTimeout=UE::FTimeout::Never())
 
RHI_API FRHIVertexDeclarationPipelineStateCache::GetOrCreateVertexDeclaration (const FVertexDeclarationElementList &Elements)
 
RHI_API FRayTracingPipelineStatePipelineStateCache::GetAndOrCreateRayTracingPipelineState (FRHICommandList &RHICmdList, const FRayTracingPipelineStateInitializer &Initializer, ERayTracingPipelineCacheFlags Flags=ERayTracingPipelineCacheFlags::Default)
 
RHI_API FRayTracingPipelineStatePipelineStateCache::GetRayTracingPipelineState (const FRayTracingPipelineStateSignature &Signature)
 
RHI_API void PipelineStateCache::FlushResources ()
 
RHI_API void PipelineStateCache::ReportFrameHitchToCSV ()
 
RHI_API void PipelineStateCache::WaitForAllTasks ()
 
RHI_API void PipelineStateCache::Init ()
 
RHI_API void PipelineStateCache::Shutdown ()
 
RHI_API void PipelineStateCache::PreCompileComplete ()
 
RHI_API int32 PipelineStateCache::GetNumActivePipelinePrecompileTasks ()
 
RHI_API bool PipelineStateCache::IsPSOPrecachingEnabled ()
 
RHI_API FPSOPrecacheRequestResult PipelineStateCache::PrecacheComputePipelineState (FRHIComputeShader *ComputeShader, const TCHAR *Name=nullptr, bool bForcePrecache=false)
 
RHI_API FPSOPrecacheRequestResult PipelineStateCache::PrecacheGraphicsPipelineState (const FGraphicsPipelineStateInitializer &PipelineStateInitializer)
 
RHI_API EPSOPrecacheResult PipelineStateCache::CheckPipelineStateInCache (const FGraphicsPipelineStateInitializer &PipelineStateInitializer)
 
RHI_API EPSOPrecacheResult PipelineStateCache::CheckPipelineStateInCache (FRHIComputeShader *ComputeShader)
 
RHI_API bool PipelineStateCache::IsPrecaching (const FPSOPrecacheRequestID &PSOPrecacheRequestID)
 
RHI_API bool PipelineStateCache::IsPrecaching (const FGraphicsPipelineStateInitializer &PipelineStateInitializer)
 
RHI_API bool PipelineStateCache::IsPrecaching (FRHIComputeShader *ComputeShader)
 
RHI_API bool PipelineStateCache::IsPrecaching ()
 
RHI_API void PipelineStateCache::BoostPrecachePriority (EPSOPrecachePriority PSOPrecachePriority, const FPSOPrecacheRequestID &PSOPrecacheRequestID)
 
RHI_API uint32 PipelineStateCache::NumActivePrecacheRequests ()
 
RHI_API void PipelineStateCache::PrecachePSOsBoostToHighestPriority (bool bForceHighest)
 
RHI_API FPSORuntimeCreationStats PipelineStateCache::GetPSORuntimeCreationStats ()
 
RHI_API void PipelineStateCache::ResetPSOHitchTrackingStats ()
 
RHI_API int32 FindRayTracingHitGroupIndex (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *HitGroupShader, bool bRequired=true)
 
RHI_API int32 FindRayTracingCallableShaderIndex (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *CallableShader, bool bRequired=true)
 
RHI_API int32 FindRayTracingMissShaderIndex (FRayTracingPipelineState *Pipeline, FRHIRayTracingShader *MissShader, bool bRequired=true)
 

Enumeration Type Documentation

◆ EApplyRendertargetOption

enum class EApplyRendertargetOption : int
strong
Enumerator
DoNothing 
CheckApply 
ForceApply 

◆ EPSOPrecachePriority

PSO Precache request priority

Enumerator
Medium 
High 
Highest 

◆ EPSOPrecacheResult

enum class EPSOPrecacheResult
strong
Enumerator
Unknown 
Active 
Complete 
Missed 
TooLate 
NotSupported 
Untracked 

◆ ERayTracingPipelineCacheFlags

Enumerator
Default 
NonBlocking 

Function Documentation

◆ ENUM_CLASS_FLAGS() [1/2]

ENUM_CLASS_FLAGS ( EApplyRendertargetOption  )

◆ ENUM_CLASS_FLAGS() [2/2]

ENUM_CLASS_FLAGS ( ERayTracingPipelineCacheFlags  )

◆ FindRayTracingCallableShaderIndex()

RHI_API int32 FindRayTracingCallableShaderIndex ( FRayTracingPipelineState Pipeline,
FRHIRayTracingShader CallableShader,
bool  bRequired = true 
)
extern

◆ FindRayTracingHitGroupIndex()

RHI_API int32 FindRayTracingHitGroupIndex ( FRayTracingPipelineState Pipeline,
FRHIRayTracingShader HitGroupShader,
bool  bRequired = true 
)
extern

◆ FindRayTracingMissShaderIndex()

RHI_API int32 FindRayTracingMissShaderIndex ( FRayTracingPipelineState Pipeline,
FRHIRayTracingShader MissShader,
bool  bRequired = true 
)
extern

◆ LexToString()

RHI_API const TCHAR * LexToString ( EPSOPrecacheResult  Result)
extern

◆ SetComputePipelineState()

RHI_API void SetComputePipelineState ( FRHIComputeCommandList RHICmdList,
FRHIComputeShader ComputeShader 
)
extern

◆ SetGraphicsPipelineState()

RHI_API void SetGraphicsPipelineState ( FRHICommandList RHICmdList,
const FGraphicsPipelineStateInitializer Initializer,
uint32  StencilRef,
EApplyRendertargetOption  ApplyFlags = EApplyRendertargetOption::CheckApply,
bool  bApplyAdditionalState = true 
)
extern

◆ SetGraphicsPipelineStateCheckApply()

RHI_API void SetGraphicsPipelineStateCheckApply ( FRHICommandList RHICmdList,
const FGraphicsPipelineStateInitializer Initializer,
uint32  StencilRef,
bool  bApplyAdditionalState = true 
)
extern