UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
D3D12LegacyBarriers.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_LEGACY_BARRIERS
8
9#include "ID3D12Barriers.h"
10
13
14//
15// Separate the implementation details from the fulfillment of
16// the ID3D12BarriersForAdapter interface so that other platforms
17// which need to further specialize both the interface and the
18// implementation don't run into the diamond inheritance problem
19// with the interface or are forced to have multiple v-tables
20//
21
23{
24 D3D12_RESOURCE_STATES GetInitialState(
27
28 void ConfigureDevice(
29 ID3D12Device* Device,
30 bool InWithD3DDebug);
31
32 uint64 GetTransitionDataSizeBytes();
33 uint64 GetTransitionDataAlignmentBytes();
34
35 void CreateTransition(
36 FRHITransition* Transition,
37 const FRHITransitionCreateInfo& CreateInfo);
38
39 void ReleaseTransition(
40 FRHITransition* Transition);
41
42 HRESULT CreateCommittedResource(
43 FD3D12Adapter& Adapter,
50
51 HRESULT CreateReservedResource(
52 FD3D12Adapter& Adapter,
57
58 HRESULT CreatePlacedResource(
59 FD3D12Adapter& Adapter,
66
67} // namespace FD3D12LegacyBarriersForAdapterImpl
68
71{
72public:
74
75 virtual void ConfigureDevice(
76 ID3D12Device* Device,
77 bool InWithD3DDebug) const override final;
78
79 virtual uint64 GetTransitionDataSizeBytes() const override final;
80 virtual uint64 GetTransitionDataAlignmentBytes() const override final;
81
82 virtual void CreateTransition(
83 FRHITransition* Transition,
84 const FRHITransitionCreateInfo& CreateInfo) const override final;
85
86 virtual void ReleaseTransition(
87 FRHITransition* Transition) const override final;
88
89 virtual HRESULT CreateCommittedResource(
90 FD3D12Adapter& Adapter,
97
98 virtual HRESULT CreateReservedResource(
99 FD3D12Adapter& Adapter,
104
105 virtual HRESULT CreatePlacedResource(
106 FD3D12Adapter& Adapter,
113
114 virtual const TCHAR* GetImplementationName() const override final;
115};
116
119{
120public:
123
124 virtual void BeginTransitions(
126 TArrayView<const FRHITransition*> Transitions) override final;
127
128 virtual void EndTransitions(
130 TArrayView<const FRHITransition*> Transitions) override final;
131
132 virtual void AddGlobalBarrier(
135 ED3D12Access D3D12AccessAfter) override final;
136
137 virtual void AddBarrier(
139 const FD3D12Resource* pResource,
142 uint32 Subresource) override final;
143
144 virtual void FlushIntoCommandList(
145 class FD3D12CommandList& CommandList,
146 class FD3D12QueryAllocator& TimestampAllocator) override final;
147
148 virtual int32 GetNumPendingBarriers() const override final;
149
150private:
152
153 static void HandleReservedResourceCommits(
156
161
164 TArrayView<const FRHITransition*> Transitions,
165 bool bIsBeginTransition);
166
170
174 bool& bUAVBarrier);
175
182
184};
185
186#endif // D3D12RHI_SUPPORTS_LEGACY_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
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 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 Array.h:670
Definition RefCounting.h:454
Definition UniquePtr.h:107
Definition D3D12Resources.h:134
Definition RHITransition.h:382
Definition RHITransition.h:475