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

#include <D3D12DescriptorCache.h>

+ Inheritance diagram for FD3D12DescriptorCache:

Public Member Functions

 FD3D12DescriptorCache ()=delete
 
 FD3D12DescriptorCache (FD3D12CommandContext &Context, FRHIGPUMask Node)
 
 ~FD3D12DescriptorCache ()
 
FD3D12OnlineHeapGetCurrentViewHeap () const
 
FD3D12OnlineHeapGetCurrentSamplerHeap () const
 
ID3D12DescriptorHeapGetLastSetViewHeap () const
 
bool IsHeapSet (ID3D12DescriptorHeap *const pHeap) const
 
void OpenCommandList ()
 
void CloseCommandList ()
 
void SetVertexBuffers (FD3D12VertexBufferCache &Cache)
 
void SetRenderTargets (FD3D12RenderTargetView **RenderTargetViewArray, uint32 Count, FD3D12DepthStencilView *DepthStencilTarget)
 
D3D12_GPU_DESCRIPTOR_HANDLE BuildUAVTable (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12UnorderedAccessViewCache &Cache, const UAVSlotMask &SlotsNeededMask, uint32 Count, uint32 &HeapSlot)
 
D3D12_GPU_DESCRIPTOR_HANDLE BuildSamplerTable (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12SamplerStateCache &Cache, const SamplerSlotMask &SlotsNeededMask, uint32 Count, uint32 &HeapSlot)
 
D3D12_GPU_DESCRIPTOR_HANDLE BuildSRVTable (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12ShaderResourceViewCache &Cache, const SRVSlotMask &SlotsNeededMask, uint32 Count, uint32 &HeapSlot)
 
void SetUAVTable (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12UnorderedAccessViewCache &Cache, uint32 SlotsNeeded, const D3D12_GPU_DESCRIPTOR_HANDLE &BindDescriptor)
 
void SetSamplerTable (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12SamplerStateCache &Cache, uint32 SlotsNeeded, const D3D12_GPU_DESCRIPTOR_HANDLE &BindDescriptor)
 
void SetSRVTable (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12ShaderResourceViewCache &Cache, uint32 SlotsNeeded, const D3D12_GPU_DESCRIPTOR_HANDLE &BindDescriptor)
 
void SetConstantBufferViews (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12ConstantBufferCache &Cache, CBVSlotMask SlotsNeededMask, uint32 Count, uint32 &HeapSlot)
 
void SetRootConstantBuffers (EShaderFrequency ShaderStage, const FD3D12RootSignature *RootSignature, FD3D12ConstantBufferCache &Cache, CBVSlotMask SlotsNeededMask, FD3D12StateCache *StateCache)
 
void PrepareBindlessViews (EShaderFrequency ShaderStage, TConstArrayView< FD3D12ShaderResourceView * > SRVs, TConstArrayView< FD3D12UnorderedAccessView * > UAVs)
 
bool HeapRolledOver (ERHIDescriptorHeapType InHeapType)
 
void HeapLoopedAround (ERHIDescriptorHeapType InHeapType)
 
void Init (uint32 InNumLocalViewDescriptors, uint32 InNumSamplerDescriptors)
 
bool SwitchToContextLocalViewHeap ()
 
bool SwitchToContextLocalSamplerHeap ()
 
void SwitchToGlobalSamplerHeap ()
 
void SetExplicitDescriptorCache (FD3D12ExplicitDescriptorCache &ExplicitDescriptorCache)
 
void UnsetExplicitDescriptorCache ()
 
bool UsingGlobalSamplerHeap () const
 
FD3D12SamplerSetGetLocalSamplerSet ()
 
bool SetDescriptorHeaps (ED3D12SetDescriptorHeapsFlags Flags)
 
constexpr bool CouldUseBindless () const
 
constexpr bool IsFullyBindless () const
 
- Public Member Functions inherited from FD3D12DeviceChild
 FD3D12DeviceChild (FD3D12Device *InParent=nullptr)
 
FORCEINLINE FD3D12DeviceGetParentDevice () const
 
FD3D12DeviceGetParentDevice_Unsafe () const
 
- Public Member Functions inherited from FD3D12SingleNodeGPUObject
 FD3D12SingleNodeGPUObject (FRHIGPUMask GPUMask)
 
SGPU_CONSTEXPR uint32 GetGPUIndex () const
 
- Public Member Functions inherited from FD3D12GPUObject
 FD3D12GPUObject (FRHIGPUMask InGPUMask, FRHIGPUMask InVisibiltyMask)
 
SGPU_CONSTEXPR FRHIGPUMask GetGPUMask () const
 
SGPU_CONSTEXPR FRHIGPUMask GetVisibilityMask () const
 

Protected Attributes

FD3D12CommandContextContext
 
const FD3D12DefaultViewsDefaultViews
 
- Protected Attributes inherited from FD3D12DeviceChild
FD3D12DeviceParent
 

Constructor & Destructor Documentation

◆ FD3D12DescriptorCache() [1/2]

FD3D12DescriptorCache::FD3D12DescriptorCache ( )
delete

◆ FD3D12DescriptorCache() [2/2]

FD3D12DescriptorCache::FD3D12DescriptorCache ( FD3D12CommandContext Context,
FRHIGPUMask  Node 
)

◆ ~FD3D12DescriptorCache()

FD3D12DescriptorCache::~FD3D12DescriptorCache ( )

Member Function Documentation

◆ BuildSamplerTable()

D3D12_GPU_DESCRIPTOR_HANDLE FD3D12DescriptorCache::BuildSamplerTable ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12SamplerStateCache Cache,
const SamplerSlotMask SlotsNeededMask,
uint32  Count,
uint32 HeapSlot 
)

◆ BuildSRVTable()

D3D12_GPU_DESCRIPTOR_HANDLE FD3D12DescriptorCache::BuildSRVTable ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12ShaderResourceViewCache Cache,
const SRVSlotMask SlotsNeededMask,
uint32  Count,
uint32 HeapSlot 
)

◆ BuildUAVTable()

D3D12_GPU_DESCRIPTOR_HANDLE FD3D12DescriptorCache::BuildUAVTable ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12UnorderedAccessViewCache Cache,
const UAVSlotMask SlotsNeededMask,
uint32  Count,
uint32 HeapSlot 
)

◆ CloseCommandList()

void FD3D12DescriptorCache::CloseCommandList ( )

◆ CouldUseBindless()

constexpr bool FD3D12DescriptorCache::CouldUseBindless ( ) const
inlineconstexpr

◆ GetCurrentSamplerHeap()

FD3D12OnlineHeap * FD3D12DescriptorCache::GetCurrentSamplerHeap ( ) const
inline

◆ GetCurrentViewHeap()

FD3D12OnlineHeap * FD3D12DescriptorCache::GetCurrentViewHeap ( ) const
inline

◆ GetLastSetViewHeap()

ID3D12DescriptorHeap * FD3D12DescriptorCache::GetLastSetViewHeap ( ) const
inline

◆ GetLocalSamplerSet()

FD3D12SamplerSet & FD3D12DescriptorCache::GetLocalSamplerSet ( )
inline

◆ HeapLoopedAround()

void FD3D12DescriptorCache::HeapLoopedAround ( ERHIDescriptorHeapType  InHeapType)

◆ HeapRolledOver()

bool FD3D12DescriptorCache::HeapRolledOver ( ERHIDescriptorHeapType  InHeapType)

◆ Init()

void FD3D12DescriptorCache::Init ( uint32  InNumLocalViewDescriptors,
uint32  InNumSamplerDescriptors 
)

◆ IsFullyBindless()

constexpr bool FD3D12DescriptorCache::IsFullyBindless ( ) const
inlineconstexpr

◆ IsHeapSet()

bool FD3D12DescriptorCache::IsHeapSet ( ID3D12DescriptorHeap *const  pHeap) const
inline

◆ OpenCommandList()

void FD3D12DescriptorCache::OpenCommandList ( )

◆ PrepareBindlessViews()

void FD3D12DescriptorCache::PrepareBindlessViews ( EShaderFrequency  ShaderStage,
TConstArrayView< FD3D12ShaderResourceView * >  SRVs,
TConstArrayView< FD3D12UnorderedAccessView * >  UAVs 
)

◆ SetConstantBufferViews()

void FD3D12DescriptorCache::SetConstantBufferViews ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12ConstantBufferCache Cache,
CBVSlotMask  SlotsNeededMask,
uint32  Count,
uint32 HeapSlot 
)

◆ SetDescriptorHeaps()

bool FD3D12DescriptorCache::SetDescriptorHeaps ( ED3D12SetDescriptorHeapsFlags  Flags)

◆ SetExplicitDescriptorCache()

void FD3D12DescriptorCache::SetExplicitDescriptorCache ( FD3D12ExplicitDescriptorCache ExplicitDescriptorCache)

◆ SetRenderTargets()

void FD3D12DescriptorCache::SetRenderTargets ( FD3D12RenderTargetView **  RenderTargetViewArray,
uint32  Count,
FD3D12DepthStencilView DepthStencilTarget 
)

◆ SetRootConstantBuffers()

void FD3D12DescriptorCache::SetRootConstantBuffers ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12ConstantBufferCache Cache,
CBVSlotMask  SlotsNeededMask,
FD3D12StateCache StateCache 
)

◆ SetSamplerTable()

void FD3D12DescriptorCache::SetSamplerTable ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12SamplerStateCache Cache,
uint32  SlotsNeeded,
const D3D12_GPU_DESCRIPTOR_HANDLE BindDescriptor 
)

◆ SetSRVTable()

void FD3D12DescriptorCache::SetSRVTable ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12ShaderResourceViewCache Cache,
uint32  SlotsNeeded,
const D3D12_GPU_DESCRIPTOR_HANDLE BindDescriptor 
)

◆ SetUAVTable()

void FD3D12DescriptorCache::SetUAVTable ( EShaderFrequency  ShaderStage,
const FD3D12RootSignature RootSignature,
FD3D12UnorderedAccessViewCache Cache,
uint32  SlotsNeeded,
const D3D12_GPU_DESCRIPTOR_HANDLE BindDescriptor 
)

◆ SetVertexBuffers()

void FD3D12DescriptorCache::SetVertexBuffers ( FD3D12VertexBufferCache Cache)

◆ SwitchToContextLocalSamplerHeap()

bool FD3D12DescriptorCache::SwitchToContextLocalSamplerHeap ( )

◆ SwitchToContextLocalViewHeap()

bool FD3D12DescriptorCache::SwitchToContextLocalViewHeap ( )

◆ SwitchToGlobalSamplerHeap()

void FD3D12DescriptorCache::SwitchToGlobalSamplerHeap ( )

◆ UnsetExplicitDescriptorCache()

void FD3D12DescriptorCache::UnsetExplicitDescriptorCache ( )

◆ UsingGlobalSamplerHeap()

bool FD3D12DescriptorCache::UsingGlobalSamplerHeap ( ) const
inline

Member Data Documentation

◆ Context

FD3D12CommandContext& FD3D12DescriptorCache::Context
protected

◆ DefaultViews

const FD3D12DefaultViews& FD3D12DescriptorCache::DefaultViews
protected

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