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

#include <WindowsD3D12Adapter.h>

+ Inheritance diagram for FWindowsD3D12Adapter:

Public Member Functions

 FWindowsD3D12Adapter (FD3D12AdapterDesc &InDesc)
 
- Public Member Functions inherited from FD3D12Adapter
 FD3D12Adapter (FD3D12AdapterDesc &DescIn)
 
virtual ~FD3D12Adapter ()
 
void CleanupResources ()
 
void InitializeDevices ()
 
void InitializeExplicitDescriptorHeap ()
 
void InitializeRayTracing ()
 
FORCEINLINE const uint32 GetAdapterIndex () const
 
FORCEINLINE const D3D_FEATURE_LEVEL GetFeatureLevel () const
 
FORCEINLINE D3D_SHADER_MODEL GetHighestShaderModel () const
 
FORCEINLINE ID3D12DeviceGetD3DDevice () const
 
FORCEINLINE IDXGIFactory2GetDXGIFactory2 () const
 
FORCEINLINE const bool IsDebugDevice () const
 
FORCEINLINE const D3D12_RESOURCE_HEAP_TIER GetResourceHeapTier () const
 
FORCEINLINE const D3D12_RESOURCE_BINDING_TIER GetResourceBindingTier () const
 
FORCEINLINE const D3D_ROOT_SIGNATURE_VERSION GetRootSignatureVersion () const
 
FORCEINLINE const bool IsDepthBoundsTestSupported () const
 
FORCEINLINE const bool IsHeapNotZeroedSupported () const
 
FORCEINLINE const bool AreCopyQueueTimestampQueriesSupported () const
 
FORCEINLINE const DXGI_ADAPTER_DESCGetD3DAdapterDesc () const
 
FORCEINLINE IDXGIAdapterGetAdapter ()
 
FORCEINLINE const FD3D12AdapterDescGetDesc () const
 
FORCEINLINE TArray< FD3D12Viewport * > & GetViewports ()
 
FORCEINLINE int32 GetMaxDescriptorsForHeapType (ERHIDescriptorHeapType InHeapType)
 
FORCEINLINE ID3D12CommandSignatureGetDrawIndirectCommandSignature ()
 
FORCEINLINE ID3D12CommandSignatureGetDrawIndexedIndirectCommandSignature ()
 
FORCEINLINE ID3D12CommandSignatureGetDispatchIndirectGraphicsCommandSignature ()
 
FORCEINLINE ID3D12CommandSignatureGetDispatchIndirectComputeCommandSignature ()
 
FORCEINLINE ID3D12CommandSignatureGetDispatchRaysIndirectCommandSignature ()
 
FORCEINLINE FD3D12PipelineStateCacheGetPSOCache ()
 
const FD3D12RootSignatureGetRootSignature (const FBoundShaderStateInput &BoundShaderState)
 
const FD3D12RootSignatureGetRootSignature (const class FD3D12ComputeShader *Shader)
 
const FD3D12RootSignatureGetRootSignature (ERHIShaderBundleMode ShaderBundleMode, bool bBindless)
 
const FD3D12RootSignatureGetRootSignature (const class FD3D12WorkGraphShader *Shader)
 
const FD3D12RootSignatureGetGlobalWorkGraphRootSignature (const FRHIShaderBindingLayout &ShaderBindingLayout)
 
const FD3D12RootSignatureGetWorkGraphGraphicsRootSignature (const FBoundShaderStateInput &BoundShaderState)
 
const FD3D12RootSignatureGetLocalRootSignature (const class FD3D12RayTracingShader *Shader)
 
const FD3D12RootSignatureGetGlobalRayTracingRootSignature (const FRHIShaderBindingLayout &ShaderBindingLayout)
 
FORCEINLINE FD3D12RootSignatureManagerGetRootSignatureManager ()
 
FORCEINLINE FD3D12ManualFenceGetFrameFence ()
 
FORCEINLINE FD3D12DeviceGetDevice (uint32 GPUIndex) const
 
TConstArrayView< FD3D12Device * > GetDevices () const
 
FORCEINLINE uint32 GetVRSTileSize () const
 
void CreateDXGIFactory (bool bWithDebug)
 
void InitDXGIFactoryVariants (IDXGIFactory2 *InDxgiFactory2)
 
HRESULT EnumAdapters (IDXGIAdapter **TempAdapter) const
 
FORCEINLINE FD3D12UploadHeapAllocatorGetUploadHeapAllocator (uint32 GPUIndex)
 
FORCEINLINE uint32 GetDebugFlags () const
 
void EndFrame ()
 
HRESULT CreateCommittedResource (const FD3D12ResourceDesc &InDesc, FRHIGPUMask CreationNode, const D3D12_HEAP_PROPERTIES &HeapProps, ED3D12Access InInitialD3D12Access, const D3D12_CLEAR_VALUE *ClearValue, FD3D12Resource **ppOutResource, const TCHAR *Name, bool bVerifyHResult=true)
 
HRESULT CreateCommittedResource (const FD3D12ResourceDesc &Desc, FRHIGPUMask CreationNode, const D3D12_HEAP_PROPERTIES &HeapProps, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, const D3D12_CLEAR_VALUE *ClearValue, FD3D12Resource **ppOutResource, const TCHAR *Name, bool bVerifyHResult=true)
 
HRESULT CreateCommittedResourceRaw (const D3D12_HEAP_PROPERTIES &InHeapProps, D3D12_HEAP_FLAGS InHeapFlags, const FD3D12ResourceDesc &InDesc, ED3D12Access InInitialD3D12Access, const D3D12_CLEAR_VALUE *InClearValue, TRefCountPtr< ID3D12Resource > &OutResource)
 
HRESULT CreatePlacedResource (const FD3D12ResourceDesc &InDesc, FD3D12Heap *BackingHeap, uint64 HeapOffset, ED3D12Access InInitialD3D12Access, const D3D12_CLEAR_VALUE *ClearValue, FD3D12Resource **ppOutResource, const TCHAR *Name, bool bVerifyHResult=true)
 
HRESULT CreatePlacedResource (const FD3D12ResourceDesc &Desc, FD3D12Heap *BackingHeap, uint64 HeapOffset, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, const D3D12_CLEAR_VALUE *ClearValue, FD3D12Resource **ppOutResource, const TCHAR *Name, bool bVerifyHResult=true)
 
HRESULT CreateReservedResource (const FD3D12ResourceDesc &Desc, FRHIGPUMask CreationNode, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, const D3D12_CLEAR_VALUE *ClearValue, FD3D12Resource **ppOutResource, const TCHAR *Name, bool bVerifyHResult=true)
 
HRESULT CreateBuffer (D3D12_HEAP_TYPE HeapType, FRHIGPUMask CreationNode, FRHIGPUMask VisibleNodes, uint64 HeapSize, FD3D12Resource **ppOutResource, const TCHAR *Name, D3D12_RESOURCE_FLAGS Flags=D3D12_RESOURCE_FLAG_NONE)
 
HRESULT CreateBuffer (D3D12_HEAP_TYPE HeapType, FRHIGPUMask CreationNode, FRHIGPUMask VisibleNodes, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, uint64 HeapSize, FD3D12Resource **ppOutResource, const TCHAR *Name, D3D12_RESOURCE_FLAGS Flags=D3D12_RESOURCE_FLAG_NONE)
 
HRESULT CreateBuffer (const D3D12_HEAP_PROPERTIES &HeapProps, FRHIGPUMask CreationNode, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, uint64 HeapSize, FD3D12Resource **ppOutResource, const TCHAR *Name, D3D12_RESOURCE_FLAGS Flags=D3D12_RESOURCE_FLAG_NONE)
 
FD3D12BufferCreateRHIBuffer (const D3D12_RESOURCE_DESC &Desc, uint32 Alignment, const FRHIBufferCreateDesc &CreateDesc, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InCreateD3D12Access, bool bKeepUnlocked=false, ID3D12ResourceAllocator *ResourceAllocator=nullptr)
 
void CreateUAVAliasResourceDesc (const FD3D12ResourceLocation &Location)
 
template<typename ObjectType , typename CreationCoreFunction >
ObjectType * CreateLinkedObject (FRHIGPUMask GPUMask, const CreationCoreFunction &pfnCreationCore)
 
FD3D12CommandContextRedirectorGetDefaultContextRedirector ()
 
FD3D12TransientHeapCacheGetOrCreateTransientHeapCache ()
 
FD3D12FastConstantAllocatorGetTransientUniformBufferAllocator ()
 
void ReleaseTransientUniformBufferAllocator (FTransientUniformBufferAllocator *InAllocator)
 
void BlockUntilIdle ()
 
const FD3DMemoryStatsCollectMemoryStats ()
 
FORCEINLINE const FD3DMemoryStatsGetMemoryStats () const
 
FORCEINLINE uint64 GetMemoryStatsUpdateFrame () const
 
bool IsTrackingAllAllocations () const
 
void TrackAllocationData (FD3D12ResourceLocation *InAllocation, uint64 InAllocationSize, bool bCollectCallstack)
 
void ReleaseTrackedAllocationData (FD3D12ResourceLocation *InAllocation, bool bDefragFree)
 
void TrackHeapAllocation (FD3D12Heap *InHeap)
 
void ReleaseTrackedHeap (FD3D12Heap *InHeap)
 
void DumpTrackedAllocationData (FOutputDevice &OutputDevice, bool bResidentOnly, bool bWithCallstack)
 
void FindResourcesNearGPUAddress (D3D12_GPU_VIRTUAL_ADDRESS InGPUVirtualAddress, uint64 InRange, TArray< FAllocatedResourceResult > &OutResources)
 
void FindHeapsContainingGPUAddress (D3D12_GPU_VIRTUAL_ADDRESS InGPUVirtualAddress, TArray< FD3D12Heap * > &OutHeaps)
 
void FindReleasedAllocationData (D3D12_GPU_VIRTUAL_ADDRESS InGPUVirtualAddress, TArray< FReleasedAllocationData > &OutAllocationData)
 
void SetResidencyPriority (ID3D12Pageable *Pageable, D3D12_RESIDENCY_PRIORITY HeapPriority, uint32 GPUIndex)
 
void CreateTransition (FRHITransition *Transition, const FRHITransitionCreateInfo &CreateInfo)
 
void ReleaseTransition (FRHITransition *Transition)
 

Protected Member Functions

virtual void CreateCommandSignatures () final override
 
- Protected Member Functions inherited from FD3D12Adapter
virtual void CreateRootDevice (bool bWithDebug)
 
void CreateD3DInfoQueue ()
 
virtual void AllocateBuffer (FD3D12Device *Device, const D3D12_RESOURCE_DESC &Desc, uint32 Size, EBufferUsageFlags InUsage, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InCreatED3D12Access, uint32 Alignment, FD3D12Buffer *Buffer, FD3D12ResourceLocation &ResourceLocation, ID3D12ResourceAllocator *ResourceAllocator, const TCHAR *InDebugName, const FName &OwnerName)
 
- Protected Member Functions inherited from FNoncopyable
 FNoncopyable ()
 
 ~FNoncopyable ()
 

Additional Inherited Members

- Static Public Member Functions inherited from FD3D12Adapter
static void CreateDXGIFactory (TRefCountPtr< IDXGIFactory2 > &DxgiFactory2, bool bWithDebug, HMODULE DxgiDllHandle)
 
static TUniquePtr< FD3D12BarriersFactory::BarriersForContextTypeCreateBarriersForContext ()
 
- Protected Attributes inherited from FD3D12Adapter
TRefCountPtr< ID3D12DeviceRootDevice
 
TRefCountPtr< IDXGIFactory2DxgiFactory2
 
D3D_ROOT_SIGNATURE_VERSION RootSignatureVersion
 
bool bDepthBoundsTestSupported = false
 
bool bCopyQueueTimestampQueriesSupported = false
 
bool bHeapNotZeroedSupported = false
 
int32 MaxNonSamplerDescriptors = 0
 
int32 MaxSamplerDescriptors = 0
 
uint32 VRSTileSize = 0
 
bool bDebugDevice = false
 
FD3D12AdapterDesc Desc
 
TRefCountPtr< IDXGIAdapterDxgiAdapter
 
FD3D12RootSignatureManager RootSignatureManager
 
FD3D12PipelineStateCache PipelineStateCache
 
TRefCountPtr< ID3D12CommandSignatureDrawIndirectCommandSignature
 
TRefCountPtr< ID3D12CommandSignatureDrawIndexedIndirectCommandSignature
 
TRefCountPtr< ID3D12CommandSignatureDispatchIndirectGraphicsCommandSignature
 
TRefCountPtr< ID3D12CommandSignatureDispatchIndirectComputeCommandSignature
 
TRefCountPtr< ID3D12CommandSignatureDispatchRaysIndirectCommandSignature
 
FD3D12UploadHeapAllocatorUploadHeapAllocator [MAX_NUM_GPUS]
 
TArray< FD3D12Viewport * > Viewports
 
TUniquePtr< FD3D12ManualFenceFrameFence
 
FD3D12CommandContextRedirector DefaultContextRedirector
 
bool bTrackAllAllocation = false
 
TMap< FD3D12ResourceLocation *, FTrackedAllocationDataTrackedAllocationData
 
TArray< FD3D12Heap * > TrackedHeaps
 
TArray< FReleasedAllocationDataReleasedAllocationData
 
FCriticalSection TrackedAllocationDataCS
 
FD3DMemoryStats MemoryStats
 
uint64 MemoryStatsUpdateFrame
 
TArray< FTransientUniformBufferAllocator * > TransientUniformBufferAllocators
 
FCriticalSection TransientUniformBufferAllocatorsCS
 
TUniquePtr< IRHITransientMemoryCacheTransientMemoryCache
 
TStaticArray< FD3D12Device *, MAX_NUM_GPUSDevices
 
uint32 DebugFlags = 0
 
- Static Protected Attributes inherited from FD3D12Adapter
static ED3D12BarrierImplementationType PreferredBarrierImplType = ED3D12BarrierImplementationType::Invalid
 
static TUniquePtr< const FD3D12BarriersFactory::BarriersForAdapterTypeBarriers = nullptr
 

Constructor & Destructor Documentation

◆ FWindowsD3D12Adapter()

FWindowsD3D12Adapter::FWindowsD3D12Adapter ( FD3D12AdapterDesc InDesc)
inline

Member Function Documentation

◆ CreateCommandSignatures()

void FWindowsD3D12Adapter::CreateCommandSignatures ( )
finaloverrideprotectedvirtual

Reimplemented from FD3D12Adapter.


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