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

#include <PipelineFileCache.h>

Public Types

enum class  SaveMode : uint32 { Incremental = 0 , BoundPSOsOnly = 1 }
 
enum class  PSOOrder : uint32 { Default = 0 , FirstToLatestUsed = 1 , MostToLeastUsed = 2 }
 

Public Member Functions

 DECLARE_MULTICAST_DELEGATE_OneParam (FPipelineStateLoggedEvent, const FPipelineCacheFileFormatPSO &)
 

Static Public Member Functions

static RHI_API void Initialize (uint32 GameVersion)
 
static RHI_API void Shutdown ()
 
static RHI_API bool LoadPipelineFileCacheInto (FString const &Path, TSet< FPipelineCacheFileFormatPSO > &PSOs)
 
static RHI_API bool SavePipelineFileCacheFrom (uint32 GameVersion, EShaderPlatform Platform, FString const &Path, const TSet< FPipelineCacheFileFormatPSO > &PSOs)
 
static RHI_API bool MergePipelineFileCaches (FString const &PathA, FString const &PathB, FPipelineFileCacheManager::PSOOrder Order, FString const &OutputPath)
 
static RHI_API bool OpenPipelineFileCache (const FString &Key, const FString &CacheName, EShaderPlatform Platform, FGuid &OutGameFileGuid)
 
static RHI_API bool OpenUserPipelineFileCache (const FString &Key, const FString &CacheName, EShaderPlatform Platform, FGuid &OutGameFileGuid)
 
static RHI_API bool SavePipelineFileCache (SaveMode Mode)
 
static RHI_API void CloseUserPipelineFileCache ()
 
static RHI_API void CacheGraphicsPSO (uint32 RunTimeHash, FGraphicsPipelineStateInitializer const &Initializer, bool bWasPSOPrecached, FPipelineStateStats **OutStats=nullptr)
 
static RHI_API void CacheComputePSO (uint32 RunTimeHash, FRHIComputeShader const *Initializer, bool bWasPSOPrecached, FPipelineStateStats **OutStats=nullptr)
 
static RHI_API void CacheRayTracingPSO (const FRayTracingPipelineStateInitializer &Initializer, ERayTracingPipelineCacheFlags Flags)
 
static RHI_API bool HasPipelineFileCache (const FString &PSOCacheKey)
 
static RHI_API FPipelineStateStatsRegisterPSOStats (uint32 RunTimeHash)
 
static RHI_API void RegisterPSOCompileFailure (uint32 RunTimeHash, FGraphicsPipelineStateInitializer const &Initializer)
 
static RHI_API FPipelineStateLoggedEventOnPipelineStateLogged ()
 
static RHI_API void BroadcastNewPSOsDelegate ()
 
static RHI_API void GetOrderedPSOHashes (const FString &PSOCacheKey, TArray< FPipelineCachePSOHeader > &PSOHashes, PSOOrder Order, int64 MinBindCount, TSet< uint32 > const &AlreadyCompiledHashes)
 
static RHI_API void FetchPSODescriptors (const FString &PSOCacheKey, TDoubleLinkedList< FPipelineCacheFileFormatPSORead * > &LoadedBatch)
 
static RHI_API int32 GetTotalPSOCount (const FString &PSOCacheKey)
 
static RHI_API uint32 NumPSOsLogged ()
 
static RHI_API bool IsPipelineFileCacheEnabled ()
 
static RHI_API bool LogPSOtoFileCache ()
 
static RHI_API bool ReportNewPSOs ()
 
static RHI_API bool LogPSODetails ()
 
static RHI_API uint64 SetGameUsageMaskWithComparison (uint64 GameUsageMask, FPSOMaskComparisonFn InComparisonFnPtr)
 
static uint64 GetGameUsageMask ()
 
static bool IsGameUsageMaskSet ()
 
static RHI_API void PreCompileComplete ()
 
static void SetNewPSOConsoleAndCSVLogging (bool bEnabled)
 

Friends

class FPipelineCacheFile
 

Member Enumeration Documentation

◆ PSOOrder

Enumerator
Default 
FirstToLatestUsed 
MostToLeastUsed 

◆ SaveMode

Enumerator
Incremental 
BoundPSOsOnly 

Member Function Documentation

◆ BroadcastNewPSOsDelegate()

void FPipelineFileCacheManager::BroadcastNewPSOsDelegate ( )
static

◆ CacheComputePSO()

void FPipelineFileCacheManager::CacheComputePSO ( uint32  RunTimeHash,
FRHIComputeShader const *  Initializer,
bool  bWasPSOPrecached,
FPipelineStateStats **  OutStats = nullptr 
)
static

◆ CacheGraphicsPSO()

void FPipelineFileCacheManager::CacheGraphicsPSO ( uint32  RunTimeHash,
FGraphicsPipelineStateInitializer const &  Initializer,
bool  bWasPSOPrecached,
FPipelineStateStats **  OutStats = nullptr 
)
static

◆ CacheRayTracingPSO()

void FPipelineFileCacheManager::CacheRayTracingPSO ( const FRayTracingPipelineStateInitializer Initializer,
ERayTracingPipelineCacheFlags  Flags 
)
static

◆ CloseUserPipelineFileCache()

void FPipelineFileCacheManager::CloseUserPipelineFileCache ( )
static

◆ DECLARE_MULTICAST_DELEGATE_OneParam()

FPipelineFileCacheManager::DECLARE_MULTICAST_DELEGATE_OneParam ( FPipelineStateLoggedEvent  ,
const FPipelineCacheFileFormatPSO  
)

Event signature for being notified that a new PSO has been logged

◆ FetchPSODescriptors()

void FPipelineFileCacheManager::FetchPSODescriptors ( const FString &  PSOCacheKey,
TDoubleLinkedList< FPipelineCacheFileFormatPSORead * > &  LoadedBatch 
)
static

◆ GetGameUsageMask()

static uint64 FPipelineFileCacheManager::GetGameUsageMask ( )
inlinestatic

◆ GetOrderedPSOHashes()

void FPipelineFileCacheManager::GetOrderedPSOHashes ( const FString &  PSOCacheKey,
TArray< FPipelineCachePSOHeader > &  PSOHashes,
PSOOrder  Order,
int64  MinBindCount,
TSet< uint32 > const &  AlreadyCompiledHashes 
)
static

◆ GetTotalPSOCount()

int32 FPipelineFileCacheManager::GetTotalPSOCount ( const FString &  PSOCacheKey)
static

◆ HasPipelineFileCache()

bool FPipelineFileCacheManager::HasPipelineFileCache ( const FString &  PSOCacheKey)
static

◆ Initialize()

void FPipelineFileCacheManager::Initialize ( uint32  GameVersion)
static

◆ IsGameUsageMaskSet()

static bool FPipelineFileCacheManager::IsGameUsageMaskSet ( )
inlinestatic

◆ IsPipelineFileCacheEnabled()

bool FPipelineFileCacheManager::IsPipelineFileCacheEnabled ( )
static

◆ LoadPipelineFileCacheInto()

bool FPipelineFileCacheManager::LoadPipelineFileCacheInto ( FString const &  Path,
TSet< FPipelineCacheFileFormatPSO > &  PSOs 
)
static

◆ LogPSODetails()

bool FPipelineFileCacheManager::LogPSODetails ( )
static

◆ LogPSOtoFileCache()

bool FPipelineFileCacheManager::LogPSOtoFileCache ( )
static

◆ MergePipelineFileCaches()

bool FPipelineFileCacheManager::MergePipelineFileCaches ( FString const &  PathA,
FString const &  PathB,
FPipelineFileCacheManager::PSOOrder  Order,
FString const &  OutputPath 
)
static

◆ NumPSOsLogged()

uint32 FPipelineFileCacheManager::NumPSOsLogged ( )
static

◆ OnPipelineStateLogged()

FPipelineFileCacheManager::FPipelineStateLoggedEvent & FPipelineFileCacheManager::OnPipelineStateLogged ( )
static

Gets the event delegate to register for pipeline state logging events.

◆ OpenPipelineFileCache()

bool FPipelineFileCacheManager::OpenPipelineFileCache ( const FString &  Key,
const FString &  CacheName,
EShaderPlatform  Platform,
FGuid OutGameFileGuid 
)
static

◆ OpenUserPipelineFileCache()

bool FPipelineFileCacheManager::OpenUserPipelineFileCache ( const FString &  Key,
const FString &  CacheName,
EShaderPlatform  Platform,
FGuid OutGameFileGuid 
)
static

◆ PreCompileComplete()

void FPipelineFileCacheManager::PreCompileComplete ( )
static

◆ RegisterPSOCompileFailure()

void FPipelineFileCacheManager::RegisterPSOCompileFailure ( uint32  RunTimeHash,
FGraphicsPipelineStateInitializer const &  Initializer 
)
static

◆ RegisterPSOStats()

FPipelineStateStats * FPipelineFileCacheManager::RegisterPSOStats ( uint32  RunTimeHash)
static

◆ ReportNewPSOs()

bool FPipelineFileCacheManager::ReportNewPSOs ( )
static

◆ SavePipelineFileCache()

bool FPipelineFileCacheManager::SavePipelineFileCache ( SaveMode  Mode)
static

◆ SavePipelineFileCacheFrom()

bool FPipelineFileCacheManager::SavePipelineFileCacheFrom ( uint32  GameVersion,
EShaderPlatform  Platform,
FString const &  Path,
const TSet< FPipelineCacheFileFormatPSO > &  PSOs 
)
static

◆ SetGameUsageMaskWithComparison()

uint64 FPipelineFileCacheManager::SetGameUsageMaskWithComparison ( uint64  GameUsageMask,
FPSOMaskComparisonFn  InComparisonFnPtr 
)
static

Define the Current Game Usage Mask and a comparison function to compare this mask against the recorded mask in each PSO

Parameters
GameUsageMaskCurrent Game Usage Mask to set, typically from user quality settings
InComparisonFnPtrPointer to the comparsion function - see above FPSOMaskComparisonFn definition for details
Returns
the old mask

◆ SetNewPSOConsoleAndCSVLogging()

static void FPipelineFileCacheManager::SetNewPSOConsoleAndCSVLogging ( bool  bEnabled)
inlinestatic

◆ Shutdown()

void FPipelineFileCacheManager::Shutdown ( )
static

Friends And Related Symbol Documentation

◆ FPipelineCacheFile

friend class FPipelineCacheFile
friend

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