UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
D3D12EnhancedBarriers.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
7#if D3D12RHI_SUPPORTS_ENHANCED_BARRIERS
8
9#include "ID3D12Barriers.h"
10
13
15enum class ERHIPipeline : uint8;
16
17class FD3D12Texture;
18
19//
20// Separate the implementation details from the fulfillment of
21// the ID3D12BarriersForAdapter interface so that other platforms
22// which need to further specialize both the interface and the
23// implementation don't run into the diamond inheritance problem
24// with the interface or are forced to have multiple v-tables
25//
26
28{
32
33 void ConfigureDevice(
34 ID3D12Device* Device,
35 bool InWithD3DDebug);
36
37 uint64 GetTransitionDataSizeBytes();
38 uint64 GetTransitionDataAlignmentBytes();
39
40 void CreateTransition(
41 FRHITransition* Transition,
42 const FRHITransitionCreateInfo& CreateInfo);
43
44 void ReleaseTransition(
45 FRHITransition* Transition);
46
47 HRESULT CreateCommittedResource(
48 FD3D12Adapter& Adapter,
55
56 HRESULT CreateReservedResource(
57 FD3D12Adapter& Adapter,
62
63 HRESULT CreatePlacedResource(
64 FD3D12Adapter& Adapter,
66 uint64 HeapOffset,
71
72} // namespace FD3D12EnhancedBarriersForAdapterImpl
73
76{
77public:
79
80 virtual void ConfigureDevice(
81 ID3D12Device* Device,
82 bool InWithD3DDebug) const override final;
83
84 virtual uint64 GetTransitionDataSizeBytes() const override final;
85 virtual uint64 GetTransitionDataAlignmentBytes() const override final;
86
87 virtual void CreateTransition(
88 FRHITransition* Transition,
89 const FRHITransitionCreateInfo& CreateInfo) const override final;
90
91 virtual void ReleaseTransition(
92 FRHITransition* Transition) const override final;
93
94 virtual HRESULT CreateCommittedResource(
95 FD3D12Adapter& Adapter,
102
103 virtual HRESULT CreateReservedResource(
104 FD3D12Adapter& Adapter,
109
110 virtual HRESULT CreatePlacedResource(
111 FD3D12Adapter& Adapter,
113 uint64 HeapOffset,
118
119 virtual const TCHAR* GetImplementationName() const override final;
120};
121
124{
125public:
128
129 virtual void BeginTransitions(
131 TArrayView<const FRHITransition*> Transitions) override final;
132
133 virtual void EndTransitions(
135 TArrayView<const FRHITransition*> Transitions) override final;
136
137 virtual void AddGlobalBarrier(
140 ED3D12Access D3D12AccessAfter) override final;
141
142 virtual void AddBarrier(
144 const FD3D12Resource* pResource,
147 uint32 Subresource) override final;
148
149 virtual void FlushIntoCommandList(
150 class FD3D12CommandList& CommandList,
151 class FD3D12QueryAllocator& TimestampAllocator) override final;
152
153 virtual int32 GetNumPendingBarriers() const override final;
154
155private:
156 enum class EProcessEarlyTransitions : bool
157 {
158 No = false,
159 Yes = true,
160 };
161
162 enum class EBarrierPhase : bool
163 {
164 Begin,
165 End,
166 };
167
174
179
180 static void HandleReservedResourceCommits(
183
185};
186
187#endif // D3D12RHI_SUPPORTS_ENHANCED_BARRIERS
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
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
ERHIPipeline
Definition RHIPipeline.h:13
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition D3D12Adapter.h:136
Definition D3D12CommandContext.h:513
Definition D3D12CommandList.h:63
Definition D3D12CommandContext.h:199
Definition D3D12Query.h:184
Definition D3D12Resources.h:181
Definition D3D12Texture.h:31
Definition ID3D12Barriers.h:49
virtual uint64 GetTransitionDataSizeBytes() const =0
virtual void ConfigureDevice(ID3D12Device *Device, bool InWithD3DDebug) const =0
Definition ID3D12Barriers.h:96
Definition ArrayView.h:139
Definition RefCounting.h:454
Definition UniquePtr.h:107
Definition D3D12Resources.h:134
Definition RHITransition.h:382
Definition RHITransition.h:119
Definition RHITransition.h:475