UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
D3D12TransientResourceAllocator.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "D3D12Resources.h"
7
9 : public FRHITransientHeap
10 , public FRefCountBase
11 , public FD3D12LinkedAdapterObject<FD3D12TransientHeap>
12{
13public:
16
17 FD3D12Heap* Get() { return Heap; }
18
19private:
21};
22
36
39 , public FD3D12AdapterChild
40{
41public:
43
46 {
47 switch (InType)
48 {
49 case ERHITransientResourceType::Buffer: return true;
50 case ERHITransientResourceType::Texture: return true;
51 default: checkNoEntry(); return false;
52 }
53 }
54
55 FRHITransientTexture* CreateTexture(const FRHITextureCreateInfo& CreateInfo, const TCHAR* Name, const FRHITransientAllocationFences& Fences) override;
56 FRHITransientBuffer* CreateBuffer(const FRHIBufferCreateInfo& CreateInfo, const TCHAR* Name, const FRHITransientAllocationFences& Fences) override;
57
58private:
59
60 // This adapter mocks the D3D12 resource allocator interface and performs placed resource creation.
61 class FResourceAllocatorAdapter final : public FD3D12AdapterChild, public ID3D12ResourceAllocator
62 {
63 public:
64 FResourceAllocatorAdapter(FD3D12Adapter* Adapter, FD3D12TransientHeap& InHeap, const FRHITransientHeapAllocation& InAllocation, const D3D12_RESOURCE_DESC& InDesc)
65 : FD3D12AdapterChild(Adapter)
66 , Heap(InHeap)
67 , Allocation(InAllocation)
68 , Desc(InDesc)
69 {}
70
71 void AllocateResource(
72 uint32 GPUIndex,
81 const TCHAR* InName,
82 FD3D12ResourceLocation& ResourceLocation) override;
83
85 const FRHITransientHeapAllocation& Allocation;
86 const D3D12_RESOURCE_DESC Desc;
87 uint64 GpuVirtualAddress = 0;
88 };
89
90 FD3D12Device* AllocationInfoQueryDevice;
91};
#define checkNoEntry()
Definition AssertionMacros.h:316
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ED3D12Access
Definition D3D12Access.h:15
ED3D12ResourceStateMode
Definition D3D12Resources.h:52
ERHITransientResourceType
Definition RHITransientResourceAllocator.h:178
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition D3D12RHICommon.h:54
FD3D12Adapter * ParentAdapter
Definition D3D12RHICommon.h:56
Definition D3D12Adapter.h:136
Definition D3D12Device.h:176
Definition D3D12Resources.h:73
Definition D3D12RHICommon.h:164
Definition D3D12Resources.h:641
Definition D3D12TransientResourceAllocator.h:26
FRHITransientHeap * CreateHeap(const FRHITransientHeap::FInitializer &Initializer) override
FRHITransientResourceSystem Overrides.
Definition D3D12TransientResourceAllocator.cpp:123
Definition D3D12TransientResourceAllocator.h:12
~FD3D12TransientHeap()
Definition D3D12TransientResourceAllocator.cpp:92
FD3D12Heap * Get()
Definition D3D12TransientResourceAllocator.h:17
Definition D3D12TransientResourceAllocator.h:40
bool SupportsResourceType(ERHITransientResourceType InType) const override
IRHITransientResourceAllocator Overrides.
Definition D3D12TransientResourceAllocator.h:45
FRHITransientBuffer * CreateBuffer(const FRHIBufferCreateInfo &CreateInfo, const TCHAR *Name, const FRHITransientAllocationFences &Fences) override
Definition D3D12TransientResourceAllocator.cpp:218
FRHITransientTexture * CreateTexture(const FRHITextureCreateInfo &CreateInfo, const TCHAR *Name, const FRHITransientAllocationFences &Fences) override
Definition D3D12TransientResourceAllocator.cpp:140
Definition RHITransientResourceAllocator.h:23
Definition RHITransientResourceAllocator.h:441
Definition RHICoreTransientResourceAllocator.h:603
Definition RHICoreTransientResourceAllocator.h:467
Definition RHICoreTransientResourceAllocator.h:680
Definition RHITransientResourceAllocator.h:399
Definition RefCounting.h:213
Definition RefCounting.h:454
Definition UniquePtr.h:107
Definition D3D12Resources.h:134
Definition RHIResources.h:1321
Definition MultiGPU.h:33
Definition RHIResources.h:1689
Definition RHITransientResourceAllocator.h:161
Definition RHICoreTransientResourceAllocator.h:606
Definition RHICoreTransientResourceAllocator.h:470
Definition D3D12Resources.h:827