UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FD3D12PipelineStateCacheBase Class Referenceabstract

#include <D3D12PipelineState.h>

+ Inheritance diagram for FD3D12PipelineStateCacheBase:

Classes

struct  TStateCacheKeyFuncs
 

Public Member Functions

void RemoveFromLowLevelCache (FD3D12PipelineState *PipelineState, const FGraphicsPipelineStateInitializer &PipelineStateInitializer, const FD3D12RootSignature *RootSignature)
 
void RemoveFromLowLevelCache (FD3D12PipelineState *PipelineState, const FD3D12ComputeShader *ComputeShader, const FD3D12RootSignature *RootSignature)
 
FD3D12ComputePipelineStateFindInLoadedCache (const FComputePipelineStateInitializer &Initializer, const FD3D12RootSignature *RootSignature, FD3D12ComputePipelineStateDesc &OutLowLevelDesc)
 
FD3D12ComputePipelineStateCreateAndAdd (const FComputePipelineStateInitializer &Initializer, const FD3D12RootSignature *RootSignature, const FD3D12ComputePipelineStateDesc &LowLevelDesc)
 
 FD3D12PipelineStateCacheBase (FD3D12Adapter *InParent)
 
virtual ~FD3D12PipelineStateCacheBase ()
 
- Public Member Functions inherited from FD3D12AdapterChild
 FD3D12AdapterChild (FD3D12Adapter *InParent=nullptr)
 
FORCEINLINE FD3D12AdapterGetParentAdapter () const
 
void SetParentAdapter (FD3D12Adapter *InParent)
 

Static Public Member Functions

static uint64 HashPSODesc (const FD3D12LowLevelGraphicsPipelineStateDesc &Desc)
 
static uint64 HashPSODesc (const FD3D12ComputePipelineStateDesc &Desc)
 
static uint64 HashData (const void *Data, int32 NumBytes)
 

Protected Types

enum  PSO_CACHE_TYPE { PSO_CACHE_GRAPHICS , PSO_CACHE_COMPUTE , NUM_PSO_CACHE_TYPES }
 
template<typename TDesc , typename TValue = FD3D12PipelineState*>
using TPipelineCache = TMap< TDesc, TValue, FDefaultSetAllocator, TStateCacheKeyFuncs< TDesc, TValue > >
 
typedef TFunction< void(FD3D12PipelineState **, const FD3D12LowLevelGraphicsPipelineStateDesc &)> FPostCreateGraphicCallback
 
typedef TFunction< void(FD3D12PipelineState *, const FD3D12ComputePipelineStateDesc &)> FPostCreateComputeCallback
 

Protected Member Functions

void CleanupPipelineStateCaches ()
 
FD3D12PipelineStateFindInLowLevelCache (const FD3D12LowLevelGraphicsPipelineStateDesc &Desc)
 
FD3D12PipelineStateCreateAndAddToLowLevelCache (const FD3D12LowLevelGraphicsPipelineStateDesc &Desc)
 
void AddToLowLevelCache (const FD3D12LowLevelGraphicsPipelineStateDesc &Desc, FD3D12PipelineState **OutPipelineState, const FPostCreateGraphicCallback &PostCreateCallback)
 
virtual void OnPSOCreated (FD3D12PipelineState *PipelineState, const FD3D12LowLevelGraphicsPipelineStateDesc &Desc)=0
 
FD3D12PipelineStateFindInLowLevelCache (const FD3D12ComputePipelineStateDesc &Desc)
 
FD3D12PipelineStateCreateAndAddToLowLevelCache (const FD3D12ComputePipelineStateDesc &Desc)
 
void AddToLowLevelCache (const FD3D12ComputePipelineStateDesc &Desc, FD3D12PipelineState **OutPipelineState, const FPostCreateComputeCallback &PostCreateCallback)
 
virtual void OnPSOCreated (FD3D12PipelineState *PipelineState, const FD3D12ComputePipelineStateDesc &Desc)=0
 
FD3D12GraphicsPipelineStateFindInLoadedCache (const FGraphicsPipelineStateInitializer &Initializer, const FD3D12RootSignature *RootSignature, FD3D12LowLevelGraphicsPipelineStateDesc &OutLowLevelDesc)
 
FD3D12GraphicsPipelineStateCreateAndAdd (const FGraphicsPipelineStateInitializer &Initializer, const FD3D12RootSignature *RootSignature, const FD3D12LowLevelGraphicsPipelineStateDesc &LowLevelDesc)
 

Protected Attributes

TPipelineCache< FD3D12LowLevelGraphicsPipelineStateDescLowLevelGraphicsPipelineStateCache
 
TPipelineCache< FD3D12ComputePipelineStateDescComputePipelineStateCache
 
FRWLock LowLevelGraphicsPipelineStateCacheMutex
 
FRWLock ComputePipelineStateCacheMutex
 
FRWLock DiskCachesCS
 
FDiskCacheInterface DiskCaches [NUM_PSO_CACHE_TYPES]
 
- Protected Attributes inherited from FD3D12AdapterChild
FD3D12AdapterParentAdapter
 

Member Typedef Documentation

◆ FPostCreateComputeCallback

◆ FPostCreateGraphicCallback

◆ TPipelineCache

template<typename TDesc , typename TValue = FD3D12PipelineState*>
using FD3D12PipelineStateCacheBase::TPipelineCache = TMap<TDesc, TValue, FDefaultSetAllocator, TStateCacheKeyFuncs<TDesc, TValue> >
protected

Member Enumeration Documentation

◆ PSO_CACHE_TYPE

Enumerator
PSO_CACHE_GRAPHICS 
PSO_CACHE_COMPUTE 
NUM_PSO_CACHE_TYPES 

Constructor & Destructor Documentation

◆ FD3D12PipelineStateCacheBase()

FD3D12PipelineStateCacheBase::FD3D12PipelineStateCacheBase ( FD3D12Adapter InParent)

◆ ~FD3D12PipelineStateCacheBase()

FD3D12PipelineStateCacheBase::~FD3D12PipelineStateCacheBase ( )
virtual

Member Function Documentation

◆ AddToLowLevelCache() [1/2]

void FD3D12PipelineStateCacheBase::AddToLowLevelCache ( const FD3D12ComputePipelineStateDesc Desc,
FD3D12PipelineState **  OutPipelineState,
const FPostCreateComputeCallback PostCreateCallback 
)
protected

◆ AddToLowLevelCache() [2/2]

void FD3D12PipelineStateCacheBase::AddToLowLevelCache ( const FD3D12LowLevelGraphicsPipelineStateDesc Desc,
FD3D12PipelineState **  OutPipelineState,
const FPostCreateGraphicCallback PostCreateCallback 
)
protected

◆ CleanupPipelineStateCaches()

void FD3D12PipelineStateCacheBase::CleanupPipelineStateCaches ( )
protected

◆ CreateAndAdd() [1/2]

FD3D12ComputePipelineState * FD3D12PipelineStateCacheBase::CreateAndAdd ( const FComputePipelineStateInitializer Initializer,
const FD3D12RootSignature RootSignature,
const FD3D12ComputePipelineStateDesc LowLevelDesc 
)

◆ CreateAndAdd() [2/2]

FD3D12GraphicsPipelineState * FD3D12PipelineStateCacheBase::CreateAndAdd ( const FGraphicsPipelineStateInitializer Initializer,
const FD3D12RootSignature RootSignature,
const FD3D12LowLevelGraphicsPipelineStateDesc LowLevelDesc 
)
protected

◆ CreateAndAddToLowLevelCache() [1/2]

FD3D12PipelineState * FD3D12PipelineStateCacheBase::CreateAndAddToLowLevelCache ( const FD3D12ComputePipelineStateDesc Desc)
protected

◆ CreateAndAddToLowLevelCache() [2/2]

FD3D12PipelineState * FD3D12PipelineStateCacheBase::CreateAndAddToLowLevelCache ( const FD3D12LowLevelGraphicsPipelineStateDesc Desc)
protected

◆ FindInLoadedCache() [1/2]

FD3D12ComputePipelineState * FD3D12PipelineStateCacheBase::FindInLoadedCache ( const FComputePipelineStateInitializer Initializer,
const FD3D12RootSignature RootSignature,
FD3D12ComputePipelineStateDesc OutLowLevelDesc 
)

◆ FindInLoadedCache() [2/2]

FD3D12GraphicsPipelineState * FD3D12PipelineStateCacheBase::FindInLoadedCache ( const FGraphicsPipelineStateInitializer Initializer,
const FD3D12RootSignature RootSignature,
FD3D12LowLevelGraphicsPipelineStateDesc OutLowLevelDesc 
)
protected

◆ FindInLowLevelCache() [1/2]

FD3D12PipelineState * FD3D12PipelineStateCacheBase::FindInLowLevelCache ( const FD3D12ComputePipelineStateDesc Desc)
protected

◆ FindInLowLevelCache() [2/2]

FD3D12PipelineState * FD3D12PipelineStateCacheBase::FindInLowLevelCache ( const FD3D12LowLevelGraphicsPipelineStateDesc Desc)
protected

◆ HashData()

uint64 FD3D12PipelineStateCacheBase::HashData ( const void Data,
int32  NumBytes 
)
static

◆ HashPSODesc() [1/2]

uint64 FD3D12PipelineStateCacheBase::HashPSODesc ( const FD3D12ComputePipelineStateDesc Desc)
static

◆ HashPSODesc() [2/2]

uint64 FD3D12PipelineStateCacheBase::HashPSODesc ( const FD3D12LowLevelGraphicsPipelineStateDesc Desc)
static

◆ OnPSOCreated() [1/2]

virtual void FD3D12PipelineStateCacheBase::OnPSOCreated ( FD3D12PipelineState PipelineState,
const FD3D12ComputePipelineStateDesc Desc 
)
protectedpure virtual

Implemented in FD3D12PipelineStateCache.

◆ OnPSOCreated() [2/2]

virtual void FD3D12PipelineStateCacheBase::OnPSOCreated ( FD3D12PipelineState PipelineState,
const FD3D12LowLevelGraphicsPipelineStateDesc Desc 
)
protectedpure virtual

Implemented in FD3D12PipelineStateCache.

◆ RemoveFromLowLevelCache() [1/2]

void FD3D12PipelineStateCacheBase::RemoveFromLowLevelCache ( FD3D12PipelineState PipelineState,
const FD3D12ComputeShader ComputeShader,
const FD3D12RootSignature RootSignature 
)

◆ RemoveFromLowLevelCache() [2/2]

void FD3D12PipelineStateCacheBase::RemoveFromLowLevelCache ( FD3D12PipelineState PipelineState,
const FGraphicsPipelineStateInitializer PipelineStateInitializer,
const FD3D12RootSignature RootSignature 
)

Member Data Documentation

◆ ComputePipelineStateCache

TPipelineCache<FD3D12ComputePipelineStateDesc> FD3D12PipelineStateCacheBase::ComputePipelineStateCache
protected

◆ ComputePipelineStateCacheMutex

FRWLock FD3D12PipelineStateCacheBase::ComputePipelineStateCacheMutex
mutableprotected

◆ DiskCaches

FDiskCacheInterface FD3D12PipelineStateCacheBase::DiskCaches[NUM_PSO_CACHE_TYPES]
protected

◆ DiskCachesCS

FRWLock FD3D12PipelineStateCacheBase::DiskCachesCS
protected

◆ LowLevelGraphicsPipelineStateCache

TPipelineCache<FD3D12LowLevelGraphicsPipelineStateDesc> FD3D12PipelineStateCacheBase::LowLevelGraphicsPipelineStateCache
protected

◆ LowLevelGraphicsPipelineStateCacheMutex

FRWLock FD3D12PipelineStateCacheBase::LowLevelGraphicsPipelineStateCacheMutex
mutableprotected

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