35#if D3D12_RHI_RAYTRACING
43#ifndef D3D12_WITH_CUSTOM_TEXTURE_LAYOUT
44#define D3D12_WITH_CUSTOM_TEXTURE_LAYOUT 0
47#if D3D12_WITH_CUSTOM_TEXTURE_LAYOUT
90#if ENABLE_RESIDENCY_MANAGEMENT
91 if (bRequiresResidencyTracking)
93 checkf(ResidencyHandle,
TEXT(
"Resource requires residency tracking, but BeginTrackingResidency() was not called."));
116 bool bIsTransient =
false;
141 , D3D12_RESOURCE_DESC(
Other)
148 , D3D12_RESOURCE_DESC(
Other)
157#if D3D12RHI_NEEDS_VENDOR_EXTENSIONS
169#if D3D12RHI_SUPPORTS_UNCOMPRESSED_UAV
187#if !D3D12RHI_SUPPORTS_UNCOMPRESSED_UAV
196 void* ResourceBaseAddress{};
204#ifdef PLATFORM_SUPPORTS_RESOURCE_COMPRESSION
211 int32 NumMapCalls = 0;
212 uint16 SubresourceCount{};
214 bool bRequiresResourceStateTracking : 1;
215 bool bRequiresResidencyTracking : 1;
216 bool bDepthStencil : 1;
217 bool bDeferDelete : 1;
224 struct FD3D12ReservedResourceData
233 uint32 NumCommittedTiles = 0;
266#if !D3D12RHI_SUPPORTS_UNCOMPRESSED_UAV
269 return UAVAccessResourceDesc.
Get();
280 if (NumMapCalls == 0)
283 check(ResourceBaseAddress ==
nullptr);
288 check(ResourceBaseAddress);
292 return ResourceBaseAddress;
298 check(ResourceBaseAddress);
299 check(NumMapCalls > 0);
302 if (NumMapCalls == 0)
304 Resource->Unmap(0,
nullptr);
305 ResourceBaseAddress =
nullptr;
321#ifdef PLATFORM_SUPPORTS_RESOURCE_COMPRESSION
333 if (DebugName !=
Name)
347 bDeferDelete =
false;
370#if ENABLE_RESIDENCY_MANAGEMENT
380 if (ResidencyHandles.IsEmpty())
390 if (
Handle->ResidencyStatus == FD3D12ResidencyHandle::RESIDENCY_STATUS::RESIDENT)
403#if ENABLE_RESIDENCY_MANAGEMENT
404 if (!bRequiresResidencyTracking)
410 return Heap->GetResidencyHandles();
414 return ReservedResourceData->ResidencyHandles;
418 checkf(ResidencyHandle,
TEXT(
"Resource requires residency tracking, but StartTrackingForResidency() was not called."));
426 template<
typename TLambda>
433 Lambda(BackingHeap->GetGPUVirtualAddress(), BackingHeap->GetGPUVirtualAddress(), BackingHeap->GetHeapDesc().SizeInBytes);
503 void InitializeResourceState(
525 bRequiresResourceStateTracking =
false;
532 if (bRequiresResourceStateTracking)
534#if D3D12_RHI_RAYTRACING
545 void DetermineResourceStates(
551 const FD3D12ResourceTypeHelper
Type(Desc, HeapType);
553 bDepthStencil =
Type.bDSV;
555#ifdef PLATFORM_SUPPORTS_RESOURCE_COMPRESSION
561 bRequiresResourceStateTracking =
false;
570 else if (
Type.bBuffer)
751 if (CPUBase !=
nullptr)
781 return (
uint8*)
this + 1;
786 template<
bool bReleaseResource>
787 void InternalClear();
789 void ReleaseResource();
804 union PrivateAllocatorData
813 void* MappedBaseAddress{};
815 uint64 OffsetFromBaseOfResource{};
822 bool bTransient{
false };
911 checkf(
Removed == 1,
TEXT(
"Should have exactly one registered listener during remove (same listener shouldn't registered twice and we shouldn't call this if not registered"));
917 return RenameListeners.
Num() != 0;
961#if D3D12RHI_USE_CONSTANT_BUFFER_VIEWS
997 checkf(
Removed == 1,
TEXT(
"Should have exactly one registered listener during remove (same listener shouldn't registered twice and we shouldn't call this if not registered"));
1003 return UpdateListeners.
Num() != 0;
1011 UpdateListener->UniformBufferUpdated(CmdList,
this);
1038#if RHI_ENABLE_RESOURCE_INFO
1082#if ENABLE_LOW_LEVEL_MEM_TRACKER || UE_MEMORY_TRACE_ENABLED
1104 , ShadowBufferSize(0)
1110 ResourceLocation.
Clear();
1140 virtual void Clear()
override;
1141 virtual bool Poll()
const override;
1209#if D3D12_RHI_RAYTRACING
constexpr auto MakeArrayView(OtherRangeType &&Other)
Definition ArrayView.h:873
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define FORCEINLINE_DEBUGGABLE
Definition CoreMiscDefines.h:74
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
ED3D12Access
Definition D3D12Access.h:15
constexpr bool IsValidAccess(ED3D12Access InD3D12Access)
Definition D3D12Access.h:78
class FD3D12BuddyAllocator FD3D12BaseAllocatorType
Definition D3D12Resources.h:586
ED3D12ResourceStateMode
Definition D3D12Resources.h:52
void SetD3D12ObjectName(ID3D12Object *Object, const TCHAR *Name)
Definition D3D12Util.cpp:57
#define VERIFYD3D12RESULT(x)
Definition D3D12Util.h:43
ED3D12Access DetermineInitialBufferD3D12Access(D3D12_HEAP_TYPE HeapType, const D3D12_HEAP_PROPERTIES *pCustomHeapProperties=nullptr)
Definition D3D12Util.h:385
bool IsCPUWritable(D3D12_HEAP_TYPE HeapType, const D3D12_HEAP_PROPERTIES *pCustomHeapProperties=nullptr)
Definition D3D12Util.h:364
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
uint32 HeapId
Definition MemoryTrace.h:30
@ VideoMemory
Definition MemoryTrace.h:36
const bool
Definition NetworkReplayStreaming.h:178
EUniformBufferUsage
Definition RHIDefinitions.h:536
FRHIGlobals GRHIGlobals
Definition RHIGlobals.cpp:6
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
Definition D3D12Adapter.h:136
Definition D3D12Resources.h:891
void AddRenameListener(FD3D12ShaderResourceRenameListener *InRenameListener)
Definition D3D12Resources.h:899
void ResourceRenamed(FD3D12ContextArray const &Contexts)
Definition D3D12Resources.h:920
FD3D12Resource * GetResource() const
Definition D3D12Resources.h:897
FD3D12ResourceLocation ResourceLocation
Definition D3D12Resources.h:929
~FD3D12BaseShaderResource()
Definition D3D12Resources.h:939
FD3D12BaseShaderResource(FD3D12Device *InParent)
Definition D3D12Resources.h:932
bool HasLinkedViews() const
Definition D3D12Resources.h:914
void RemoveRenameListener(FD3D12ShaderResourceRenameListener *InRenameListener)
Definition D3D12Resources.h:906
Definition D3D12State.h:49
Definition D3D12Allocation.h:142
Definition D3D12Resources.h:1017
uint32 BufferAlignment
Definition D3D12Resources.h:1087
void ReleaseOwnership()
Definition D3D12Buffer.cpp:360
virtual ~FD3D12Buffer()
Definition D3D12Buffer.cpp:15
virtual uint32 Release() const
Definition D3D12Resources.h:1070
void Rename(FD3D12ContextArray const &Contexts, FD3D12ResourceLocation &NewLocation)
Definition D3D12Buffer.cpp:318
FD3D12SyncPointRef UploadResourceDataViaCopyQueue(FD3D12CommandContext &OwningContext, FResourceArrayUploadInterface *InResourceArray)
Definition D3D12Buffer.cpp:115
virtual uint32 GetRefCount() const
Definition D3D12Resources.h:1074
static void GetResourceDescAndAlignment(const FRHIBufferCreateDesc &CreateDesc, D3D12_RESOURCE_DESC &ResourceDesc, uint32 &Alignment)
Definition D3D12Buffer.cpp:375
static void UploadResourceData(FD3D12CommandContext &CommandContext, ED3D12Access DestinationD3D12Access, FD3D12ResourceLocation &DestinationResourceLocation, const FD3D12ResourceLocation &SourceResourceLocation, uint32 Size)
Definition D3D12Buffer.cpp:30
void RenameLDAChain(FD3D12ContextArray const &Contexts, FD3D12ResourceLocation &NewLocation)
Definition D3D12Buffer.cpp:324
virtual FReturnedRefCountValue AddRef() const
Definition D3D12Resources.h:1066
FD3D12Buffer(FD3D12Device *InParent, const FRHIBufferCreateDesc &InCreateDesc)
Definition D3D12Resources.h:1019
FD3D12LockedResource LockedData
Definition D3D12Resources.h:1086
Definition D3D12CommandContext.h:513
Definition D3D12CommandList.h:63
Definition D3D12View.h:336
Definition D3D12CommandContext.h:1193
Definition D3D12State.h:37
Definition D3D12RHICommon.h:78
FORCEINLINE FD3D12Device * GetParentDevice() const
Definition D3D12RHICommon.h:85
FD3D12Device * Parent
Definition D3D12RHICommon.h:80
Definition D3D12Device.h:176
Definition D3D12RHIPrivate.h:160
Definition D3D12Resources.h:1136
virtual bool Poll() const override
Definition D3D12DirectCommandListManager.cpp:21
TArray< FD3D12SyncPointRef, TInlineAllocator< MAX_NUM_GPUS > > SyncPoints
Definition D3D12Resources.h:1145
virtual void Clear() override
Definition D3D12DirectCommandListManager.cpp:15
virtual void Wait(FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const override
Definition D3D12DirectCommandListManager.cpp:45
Definition D3D12Resources.h:73
void SetHeap(ID3D12Heap *HeapIn, const TCHAR *const InName, bool bTrack=true, bool bForceGetGPUAddress=false)
Definition D3D12Resources.cpp:704
~FD3D12Heap()
Definition D3D12Resources.cpp:666
bool GetIsTransient() const
Definition D3D12Resources.h:104
void BeginTrackingResidency(uint64 Size)
Definition D3D12Resources.cpp:757
FName GetName() const
Definition D3D12Resources.h:86
void SetIsTransient(bool bInIsTransient)
Definition D3D12Resources.h:103
TConstArrayView< FD3D12ResidencyHandle * > GetResidencyHandles()
Definition D3D12Resources.h:88
void DeferDelete()
Definition D3D12Resources.cpp:696
D3D12_HEAP_DESC GetHeapDesc() const
Definition D3D12Resources.h:87
ID3D12Heap * GetHeap() const
Definition D3D12Resources.h:78
void DisallowTrackingResidency()
Definition D3D12Resources.cpp:749
D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress() const
Definition D3D12Resources.h:102
Definition D3D12RHICommon.h:164
Definition D3D12RHICommon.h:153
Definition D3D12Resources.h:59
D3D12_RESOURCE_STATES State
Definition D3D12Resources.h:62
FD3D12PendingResourceBarrier(FD3D12Resource *Resource, D3D12_RESOURCE_STATES State, uint32 SubResource)
Definition D3D12Resources.h:65
FD3D12Resource * Resource
Definition D3D12Resources.h:61
uint32 SubResource
Definition D3D12Resources.h:63
D3D12 specific implementation of the FRHIPoolAllocator.
Definition D3D12PoolAllocator.h:130
Definition D3D12State.h:29
Definition D3D12Allocation.h:84
Definition D3D12Resources.h:641
static void TransferOwnership(FD3D12ResourceLocation &Destination, FD3D12ResourceLocation &Source)
Definition D3D12Resources.cpp:1208
void * GetAddressForLLMTracking() const
Definition D3D12Resources.h:779
FD3D12ResourceLocation(FD3D12ResourceLocation &&Other)
Definition D3D12Resources.h:665
~FD3D12ResourceLocation()
Definition D3D12Resources.cpp:1174
bool IsValid() const
Definition D3D12Resources.h:714
void SetPoolAllocator(FD3D12PoolAllocator *Value)
Definition D3D12Resources.h:685
void SetGPUVirtualAddress(D3D12_GPU_VIRTUAL_ADDRESS Value)
Definition D3D12Resources.h:690
void SetSize(uint64 Value)
Definition D3D12Resources.h:692
ResourceLocationType GetType() const
Definition D3D12Resources.h:695
ResourceLocationType
Definition D3D12Resources.h:645
@ eMultiFrameFastAllocation
bool OnAllocationMoved(FD3D12ContextArray const &Contexts, FRHIPoolAllocationData *InNewData, ED3D12Access &OutRHIAccess)
Definition D3D12Resources.cpp:1486
FD3D12BaseAllocatorType * GetAllocator()
Definition D3D12Resources.h:697
FD3D12Resource * GetResource() const
Definition D3D12Resources.h:700
void SetType(ResourceLocationType Value)
Definition D3D12Resources.h:680
void SetAllocator(FD3D12BaseAllocatorType *Value)
Definition D3D12Resources.h:683
void SetResource(FD3D12Resource *Value)
Definition D3D12Resources.cpp:1457
FD3D12BaseAllocatorType * Allocator
Definition D3D12Resources.h:798
void UnlockPoolData()
Definition D3D12Resources.cpp:1615
void SetOffsetFromBaseOfResource(uint64 Value)
Definition D3D12Resources.h:691
FD3D12SegListAllocatorPrivateData & GetSegListAllocatorPrivateData()
Definition D3D12Resources.h:707
void AsStandAlone(FD3D12Resource *Resource, uint64 InSize=0, bool bInIsTransient=false, const D3D12_HEAP_PROPERTIES *CustomHeapProperties=nullptr)
Definition D3D12Resources.cpp:1467
bool IsStandaloneOrPooledPlacedResource() const
Definition D3D12Resources.cpp:1623
static void ReferenceNode(FD3D12Device *NodeDevice, FD3D12ResourceLocation &Destination, FD3D12ResourceLocation &Source)
Definition D3D12Resources.cpp:1258
FD3D12SegListAllocator * GetSegListAllocator()
Definition D3D12Resources.h:698
void Clear()
Definition D3D12Resources.cpp:1179
void SetTransient(bool bInTransient)
Definition D3D12Resources.h:769
D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress() const
Definition D3D12Resources.h:702
EAllocatorType
Definition D3D12Resources.h:657
@ AT_SegList
Definition D3D12Resources.h:659
@ AT_Pool
Definition D3D12Resources.h:660
@ AT_Unknown
Definition D3D12Resources.h:661
@ AT_Default
Definition D3D12Resources.h:658
void SetOwner(FD3D12BaseShaderResource *InOwner)
Definition D3D12Resources.h:679
FD3D12PoolAllocator * PoolAllocator
Definition D3D12Resources.h:800
bool IsAliased() const
Definition D3D12Resources.h:763
FD3D12BlockAllocatorPrivateData & GetBlockAllocatorPrivateData()
Definition D3D12Resources.h:706
void ClearAllocator()
Definition D3D12Resources.h:687
void SetSegListAllocator(FD3D12SegListAllocator *Value)
Definition D3D12Resources.h:684
uint64 GetSize() const
Definition D3D12Resources.h:704
EAllocatorType GetAllocatorType() const
Definition D3D12Resources.h:696
void SetMappedBaseAddress(void *Value)
Definition D3D12Resources.h:689
void AsHeapAliased(FD3D12Resource *Resource)
Definition D3D12Resources.h:719
void * GetMappedBaseAddress() const
Definition D3D12Resources.h:701
FD3D12SegListAllocator * SegListAllocator
Definition D3D12Resources.h:799
bool IsTransient() const
Definition D3D12Resources.h:773
uint64 GetOffsetFromBaseOfResource() const
Definition D3D12Resources.h:703
void AsFastAllocation(FD3D12Resource *Resource, uint32 BufferSize, D3D12_GPU_VIRTUAL_ADDRESS GPUBase, void *CPUBase, uint64 ResourceOffsetBase, uint64 Offset, bool bMultiFrame=false)
Definition D3D12Resources.h:736
FD3D12PoolAllocator * GetPoolAllocator()
Definition D3D12Resources.h:699
FD3D12PoolAllocatorPrivateData & GetPoolAllocatorPrivateData()
Definition D3D12Resources.h:708
FD3D12BuddyAllocatorPrivateData & GetBuddyAllocatorPrivateData()
Definition D3D12Resources.h:705
Definition D3D12Resources.h:181
bool IsPlacedResource() const
Definition D3D12Resources.h:354
void SetUAVAccessResourceDesc(const D3D12_RESOURCE_DESC &InUAVAccessResourceDesc)
Definition D3D12Resources.h:272
bool RequiresResourceStateTracking() const
Definition D3D12Resources.h:325
const FD3D12ResourceDesc & GetDesc() const
Definition D3D12Resources.h:310
uint16 GetArraySize() const
Definition D3D12Resources.h:316
void DeferDelete()
Definition D3D12Resources.cpp:650
void StartTrackingForResidency()
Definition D3D12Resources.cpp:625
ED3D12Access GetDefaultAccess() const
Definition D3D12Resources.h:320
ID3D12Resource * GetResource() const
Definition D3D12Resources.h:264
TConstArrayView< FD3D12ResidencyHandle * > GetResidencyHandles() const
Definition D3D12Resources.h:401
bool ShouldDeferDelete() const
Definition D3D12Resources.h:350
D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress() const
Definition D3D12Resources.h:312
void * GetResourceBaseAddress() const
Definition D3D12Resources.h:314
uint16 GetSubresourceCount() const
Definition D3D12Resources.h:318
FName GetName() const
Definition D3D12Resources.h:340
ID3D12Pageable * GetPageable()
Definition D3D12Resources.cpp:613
void SetGPUVirtualAddress(D3D12_GPU_VIRTUAL_ADDRESS Value)
Definition D3D12Resources.h:313
uint64 GetCommittedReservedResourceSize() const
Definition D3D12Resources.h:358
void * Map(const D3D12_RANGE *ReadRange=nullptr)
Definition D3D12Resources.h:278
FD3D12Heap * GetHeap() const
Definition D3D12Resources.h:355
void CommitReservedResource(ID3D12CommandQueue *D3DCommandQueue, uint64 RequiredCommitSizeInBytes)
Definition D3D12Resources.cpp:223
bool IsDepthStencilResource() const
Definition D3D12Resources.h:356
const D3D12_RESOURCE_DESC * GetUAVAccessResourceDesc() const
Definition D3D12Resources.h:267
void Unmap()
Definition D3D12Resources.h:295
bool IsReservedResource() const
Definition D3D12Resources.h:353
void DoNotDeferDelete()
Definition D3D12Resources.h:345
D3D12_HEAP_TYPE GetHeapType() const
Definition D3D12Resources.h:311
bool NeedsDeferredResidencyUpdate() const
Definition D3D12Resources.h:364
uint16 GetMipLevels() const
Definition D3D12Resources.h:315
uint8 GetPlaneCount() const
Definition D3D12Resources.h:317
bool IsResident() const
Definition D3D12Resources.h:368
bool IsBackBuffer() const
Definition D3D12Resources.h:327
FORCEINLINE_DEBUGGABLE void GetBackingHeapsGpuAddresses(TLambda &&Lambda) const
Definition D3D12Resources.h:427
void SetName(const TCHAR *Name)
Definition D3D12Resources.h:329
ED3D12Access GetInitialAccess() const
Definition D3D12Resources.h:319
virtual ~FD3D12Resource()
Definition D3D12Resources.cpp:178
Definition D3D12State.h:13
Definition D3D12Allocation.h:761
Definition D3D12Resources.h:1123
FD3D12ShaderBundle(FD3D12Device *InDevice, const FShaderBundleCreateInfo &CreateInfo)
Definition D3D12Resources.h:1128
Definition D3D12Resources.h:1096
void Unlock() override
Definition D3D12DirectCommandListManager.cpp:135
~FD3D12StagingBuffer() override
Definition D3D12DirectCommandListManager.cpp:115
void SafeRelease()
Definition D3D12Resources.h:1108
uint64 GetGPUSizeBytes() const override
Definition D3D12Resources.h:1115
FD3D12StagingBuffer(FD3D12Device *InDevice)
Definition D3D12Resources.h:1101
Definition D3D12StateCachePrivate.h:300
Definition D3D12Submission.h:76
Definition NameTypes.h:617
Definition UnrealTemplate.h:321
Definition RHIResources.h:696
Definition RHIResources.h:1581
Definition RHICommandList.h:455
Definition RHIResources.h:1078
Definition RHIResources.h:686
Definition RHIResources.h:2387
Definition RHIResources.h:1058
Owner of the pool allocation data which needs to handle memory move operations.
Definition RHIPoolAllocator.h:19
Definition RHIResources.h:679
Definition RHIResources.h:3729
Definition RHIResources.h:1115
Definition RHIResources.h:3755
Definition RHIResources.h:984
uint32 GetRefCount() const
Definition RHIResources.h:93
uint32 Release() const
Definition RHIResources.h:80
ERHIResourceType GetType() const
Definition RHIResources.h:111
uint32 AddRef() const
Definition RHIResources.h:73
Definition RHIResources.h:671
Definition RHIResources.h:3863
Definition RHIResources.h:3919
Definition RHIResources.h:3981
FName GetName() const
Definition RHIResources.h:1272
Definition RHIResources.h:1106
Definition ScopeLock.h:141
Definition RefCounting.h:283
FReturnedRefCountValue AddRef() const
Definition RefCounting.h:295
Definition RefCounting.h:196
SizeType Remove(const ElementType &Item)
Definition Array.h:3091
UE_REWRITE SizeType Num() const
Definition Array.h:1144
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
Definition UniquePtr.h:107
bool IsValid() const
Definition UniquePtr.h:280
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324
Definition D3D12Resources.h:1091
void UpdateBufferStats(FD3D12Buffer &Buffer, bool bAllocating)
Definition D3D12Stats.cpp:28
Type
Definition PawnAction_Move.h:11
State
Definition PacketHandler.h:88
Definition D3D12Resources.h:601
uint32 BucketIndex
Definition D3D12Resources.h:603
void Init()
Definition D3D12Resources.h:607
uint64 FrameFence
Definition D3D12Resources.h:602
FD3D12Resource * ResourceHeap
Definition D3D12Resources.h:605
uint32 Offset
Definition D3D12Resources.h:604
Definition D3D12Resources.h:589
uint32 Order
Definition D3D12Resources.h:591
void Init()
Definition D3D12Resources.h:593
uint32 Offset
Definition D3D12Resources.h:590
Definition D3D12PipelineState.h:424
Definition D3D12PipelineState.h:394
Definition D3D12Resources.h:857
uint32 LockOffset
Definition D3D12Resources.h:875
uint32 bLocked
Definition D3D12Resources.h:877
D3D12_SUBRESOURCE_FOOTPRINT Footprint
Definition D3D12Resources.h:874
FD3D12ResourceLocation ResourceLocation
Definition D3D12Resources.h:873
uint32 bHasNeverBeenLocked
Definition D3D12Resources.h:879
uint32 bLockedForReadOnly
Definition D3D12Resources.h:878
FD3D12LockedResource(FD3D12Device *Device)
Definition D3D12Resources.h:858
uint32 LockSize
Definition D3D12Resources.h:876
void Reset()
Definition D3D12Resources.h:863
Definition D3D12Resources.h:627
void Init()
Definition D3D12Resources.h:630
FRHIPoolAllocationData PoolData
Definition D3D12Resources.h:628
Definition D3D12Residency.h:46
Definition D3D12Resources.h:134
FD3D12ResourceDesc(const D3D12_RESOURCE_DESC &Other)
Definition D3D12Resources.h:146
bool bBackBuffer
Definition D3D12Resources.h:163
bool SupportsUncompressedUAV() const
Definition D3D12Resources.h:176
EPixelFormat PixelFormat
Definition D3D12Resources.h:152
FD3D12ResourceDesc()
Definition D3D12Resources.h:135
FD3D12ResourceDesc(const CD3DX12_RESOURCE_DESC &Other)
Definition D3D12Resources.h:139
bool bReservedResource
Definition D3D12Resources.h:161
bool NeedsUAVAliasWorkarounds() const
Definition D3D12Resources.h:175
EPixelFormat UAVPixelFormat
Definition D3D12Resources.h:155
bool bExternal
Definition D3D12Resources.h:166
Definition D3D12Resources.h:439
const uint32 bWritable
Definition D3D12Resources.h:492
ED3D12Access GetOptimalInitialD3D12Access(ED3D12Access InD3D12Access, bool bAccurateWriteableStates) const
Definition D3D12Resources.h:451
const uint32 bSRV
Definition D3D12Resources.h:488
const uint32 bRTV
Definition D3D12Resources.h:490
const uint32 bSRVOnly
Definition D3D12Resources.h:493
const uint32 bUAV
Definition D3D12Resources.h:491
const uint32 bBuffer
Definition D3D12Resources.h:494
FD3D12ResourceTypeHelper(const FD3D12ResourceDesc &Desc, D3D12_HEAP_TYPE HeapType)
Definition D3D12Resources.h:440
const uint32 bReadBackResource
Definition D3D12Resources.h:495
const uint32 bDSV
Definition D3D12Resources.h:489
Definition D3D12Resources.h:617
void Init()
Definition D3D12Resources.h:620
uint32 Offset
Definition D3D12Resources.h:618
Definition D3D12Resources.h:884
virtual void ResourceRenamed(FD3D12ContextArray const &Contexts, FD3D12BaseShaderResource *InRenamedResource, FD3D12ResourceLocation *InNewResourceLocation)=0
Definition D3D12WorkGraph.h:13
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition RHIResources.h:1417
static constexpr int32 TileSizeInBytes
Definition RHIGlobals.h:697
struct FRHIGlobals::FReservedResources ReservedResources
Pool allocator internal data.
Definition RHIPoolAllocator.h:39
RHICORE_API void Reset()
Definition RHIPoolAllocator.cpp:31
FName Name
Definition RHI.h:544
Definition ResourceArray.h:10
Definition RefCounting.h:29
Definition RHIResources.h:3910
Definition D3D12Resources.h:827
void AllocateTexture(uint32 GPUIndex, D3D12_HEAP_TYPE InHeapType, const FD3D12ResourceDesc &InDesc, EPixelFormat InUEFormat, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, const D3D12_CLEAR_VALUE *InClearValue, const TCHAR *InName, FD3D12ResourceLocation &ResourceLocation)
Definition D3D12Resources.cpp:29
virtual void AllocateResource(uint32 GPUIndex, D3D12_HEAP_TYPE InHeapType, const FD3D12ResourceDesc &InDesc, uint64 InSize, uint32 InAllocationAlignment, ED3D12Access InInitialD3D12Access, ED3D12ResourceStateMode InResourceStateMode, ED3D12Access InDefaultD3D12Access, const D3D12_CLEAR_VALUE *InClearValue, const TCHAR *InName, FD3D12ResourceLocation &ResourceLocation)=0
FD3D12BlendState TConcreteType
Definition D3D12Resources.h:1176
FD3D12Buffer TConcreteType
Definition D3D12Resources.h:1156
FD3D12ComputePipelineState TConcreteType
Definition D3D12Resources.h:1186
FD3D12DepthStencilState TConcreteType
Definition D3D12Resources.h:1171
FD3D12GPUFence TConcreteType
Definition D3D12Resources.h:1196
FD3D12GraphicsPipelineState TConcreteType
Definition D3D12Resources.h:1181
FD3D12RasterizerState TConcreteType
Definition D3D12Resources.h:1166
FD3D12SamplerState TConcreteType
Definition D3D12Resources.h:1161
FD3D12ShaderBundle TConcreteType
Definition D3D12Resources.h:1206
FD3D12StagingBuffer TConcreteType
Definition D3D12Resources.h:1201
FD3D12WorkGraphPipelineState TConcreteType
Definition D3D12Resources.h:1191
Definition D3D12RHICommon.h:374
Definition D3D12Resources.h:126