13#define RDG_ENABLE_DEBUG (!UE_BUILD_SHIPPING && !UE_BUILD_TEST)
17 #define IF_RDG_ENABLE_DEBUG(Op) Op
19 #define IF_RDG_ENABLE_DEBUG(Op)
23#define RDG_ENABLE_DEBUG_WITH_ENGINE (RDG_ENABLE_DEBUG && WITH_ENGINE)
26#define RDG_ENABLE_TRACE UE_TRACE_ENABLED && !IS_PROGRAM && !UE_BUILD_SHIPPING
29 #define IF_RDG_ENABLE_TRACE(Op) Op
31 #define IF_RDG_ENABLE_TRACE(Op)
35#define RDG_DUMP_RESOURCES (WITH_DUMPGPU)
42#define RDG_EVENTS_NONE 0
43#define RDG_EVENTS_STRING_REF 1
44#define RDG_EVENTS_STRING_COPY 2
48 #if UE_BUILD_TEST || UE_BUILD_SHIPPING
49 #define RDG_EVENTS RDG_EVENTS_STRING_REF
51 #define RDG_EVENTS RDG_EVENTS_STRING_COPY
53#elif WITH_RHI_BREADCRUMBS
54 #define RDG_EVENTS RDG_EVENTS_STRING_REF
56 #define RDG_EVENTS RDG_EVENTS_NONE
59#define SUPPORTS_VISUALIZE_TEXTURE (WITH_ENGINE && (!UE_BUILD_SHIPPING || WITH_EDITOR))
325 case ERDGTextureMetaDataAccess::CompressedSurface:
326 case ERDGTextureMetaDataAccess::HTile:
327 case ERDGTextureMetaDataAccess::Depth:
329 case ERDGTextureMetaDataAccess::Stencil:
341template <
typename LocalObjectType,
typename LocalIndexType>
415 return A.Index <
B.Index ?
A :
B;
444template <
typename LocalHandleType, ERDGHandleRegistryDestructPolicy DestructPolicy = ERDGHandleRegistryDestructPolicy::Registry>
469 template<
typename DerivedType =
ObjectType,
class ...TArgs>
492 Array[
Index]->~ObjectType();
498 template <
typename FunctionType>
507 template <
typename FunctionType>
518 return Array[
Handle.GetIndex()];
523 return Array[
Handle.GetIndex()];
561template <
typename HandleType>
584template <
typename HandleType>
597 Handle = HandleType::Null;
606 Handle = Handle.IsNull() ?
InHandle : NotUniqueHandle;
612 return Handle != NotUniqueHandle ? Handle : HandleType::Null;
616 static const HandleType NotUniqueHandle;
620template <
typename ObjectType,
typename IndexType>
623template <
typename HandleType>
640 return FRDGTextureDesc(
ETextureDimension::Texture2D,
Flags,
Format,
ClearValue, {
Size.X,
Size.Y },
Depth,
ArraySize,
NumMips,
NumSamples,
ExtData);
655 return FRDGTextureDesc(
ETextureDimension::Texture2DArray,
Flags,
Format,
ClearValue, {
Size.X,
Size.Y },
Depth,
ArraySize,
NumMips,
NumSamples,
ExtData);
672 return FRDGTextureDesc(
ETextureDimension::Texture3D,
Flags,
Format,
ClearValue, {
Size.X,
Size.Y }, (
uint16)
Size.Z,
ArraySize,
NumMips,
LocalNumSamples,
ExtData);
689 return FRDGTextureDesc(
ETextureDimension::TextureCube,
Flags,
Format,
ClearValue, { (
int32)
Size, (
int32)
Size },
Depth,
ArraySize,
NumMips,
NumSamples,
ExtData);
706 return FRDGTextureDesc(
ETextureDimension::TextureCubeArray,
Flags,
Format,
ClearValue, { (
int32)
Size, (
int32)
Size },
Depth,
ArraySize,
NumMips,
NumSamples,
ExtData);
713 ,
const bool bRequireMultiView
714 ,
uint16 MobileMultiViewRenderTargetNumLayers = 2)
716 if (bRequireMultiView)
747class FRDGScopedCsvStatExclusive;
748class FRDGScopedCsvStatExclusiveConditional;
789class FRDGResourceDumpContext;
794template <
typename ArrayType,
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
FInt32Vector3 FIntVector
Definition MathFwd.h:115
ETextureDimension
Definition RHIDefinitions.h:1081
ETextureCreateFlags
Definition RHIDefinitions.h:1091
ERHITexturePlane
Definition RHIResources.h:2574
ERHITexturePlane ERHITextureMetaDataAccess
Definition RHIResources.h:2608
ERDGViewableResourceType GetParentType(ERDGViewType ViewType)
Definition RenderGraphDefinitions.h:247
ERDGTextureFlags
Definition RenderGraphDefinitions.h:185
ERDGHandleRegistryDestructPolicy
Definition RenderGraphDefinitions.h:437
ERDGPassFlags
Definition RenderGraphDefinitions.h:128
ERDGViewableResourceType
Definition RenderGraphDefinitions.h:231
ERDGViewType
Definition RenderGraphDefinitions.h:239
ERDGBufferFlags
Definition RenderGraphDefinitions.h:163
@ ForceImmediateFirstBarrier
ERDGUnorderedAccessViewFlags
Definition RenderGraphDefinitions.h:221
ERDGPooledBufferAlignment
Definition RenderGraphDefinitions.h:290
ERDGSetupTaskWaitPoint
Definition RenderGraphDefinitions.h:209
int32 GetResourceTransitionPlaneForMetadataAccess(ERDGTextureMetaDataAccess Metadata)
Definition RenderGraphDefinitions.h:321
ERDGResourceExtractionFlags
Definition RenderGraphDefinitions.h:263
ERDGInitialDataFlags
Definition RenderGraphDefinitions.h:274
ERDGViewableResourceType GetViewableResourceType(ERDGViewType ViewType)
Definition RenderGraphDefinitions.h:302
ERDGBuilderFlags
Definition RenderGraphDefinitions.h:108
uint32 Size
Definition VulkanMemory.cpp:4034
Definition BitArray.h:189
Definition BitArray.h:260
Definition RenderGraphAllocator.h:24
Definition RenderGraphBuilder.h:1182
Definition RenderGraphPass.h:108
Definition RenderGraphPass.h:185
Definition RenderGraphValidation.h:154
Definition RenderGraphBlackboard.h:57
Definition RenderGraphResourcePool.h:15
Definition RenderGraphEvent.h:38
Definition RenderGraphResourcePool.h:77
Definition RenderGraphValidation.h:41
Definition RenderGraphResources.h:291
Definition BitArray.h:350
UE_FORCEINLINE_HINT FBitReference operator[](int32 Index)
Definition BitArray.h:1468
Definition AndroidPlatformMisc.h:14
Definition RenderGraphDefinitions.h:563
const FConstBitReference operator[](HandleType Handle) const
Definition RenderGraphDefinitions.h:573
FBitReference operator[](HandleType Handle)
Definition RenderGraphDefinitions.h:568
Definition RenderGraphDefinitions.h:446
~TRDGHandleRegistry()
Definition RenderGraphDefinitions.h:458
HandleType Begin() const
Definition RenderGraphDefinitions.h:536
TRDGHandleRegistry(const TRDGHandleRegistry &)=delete
TRDGHandleRegistry(TRDGHandleRegistry &&)=default
void Enumerate(FunctionType Function)
Definition RenderGraphDefinitions.h:499
HandleType End() const
Definition RenderGraphDefinitions.h:541
HandleType Last() const
Definition RenderGraphDefinitions.h:546
typename HandleType::ObjectType ObjectType
Definition RenderGraphDefinitions.h:449
LocalHandleType HandleType
Definition RenderGraphDefinitions.h:448
ObjectType * Get(HandleType Handle)
Definition RenderGraphDefinitions.h:521
typename HandleType::IndexType IndexType
Definition RenderGraphDefinitions.h:450
TRDGHandleRegistry & operator=(TRDGHandleRegistry &&)=default
int32 Num() const
Definition RenderGraphDefinitions.h:551
void Enumerate(FunctionType Function) const
Definition RenderGraphDefinitions.h:508
TRDGHandleRegistry()=default
DerivedType * Allocate(FRDGAllocator &Allocator, TArgs &&... Args)
Definition RenderGraphDefinitions.h:470
TRDGHandleRegistry & operator=(const TRDGHandleRegistry &)=delete
void Insert(ObjectType *Object)
Definition RenderGraphDefinitions.h:463
const ObjectType * Get(HandleType Handle) const
Definition RenderGraphDefinitions.h:516
const ObjectType * operator[](HandleType Handle) const
Definition RenderGraphDefinitions.h:526
void Clear()
Definition RenderGraphDefinitions.h:486
Definition RenderGraphDefinitions.h:586
TRDGHandleUniqueFilter(HandleType InHandle)
Definition RenderGraphDefinitions.h:590
void Reset()
Definition RenderGraphDefinitions.h:595
TRDGHandleUniqueFilter()=default
void AddHandle(HandleType InHandle)
Definition RenderGraphDefinitions.h:600
HandleType GetUniqueHandle() const
Definition RenderGraphDefinitions.h:610
Definition RenderGraphDefinitions.h:343
bool IsValid() const
Definition RenderGraphDefinitions.h:361
bool IsNull() const
Definition RenderGraphDefinitions.h:360
TRDGHandle operator-(int32 Subtract) const
Definition RenderGraphDefinitions.h:383
LocalObjectType ObjectType
Definition RenderGraphDefinitions.h:345
bool operator<(TRDGHandle Other) const
Definition RenderGraphDefinitions.h:366
TRDGHandle & operator-=(int32 Decrement)
Definition RenderGraphDefinitions.h:376
static TRDGHandle Min(TRDGHandle A, TRDGHandle B)
Definition RenderGraphDefinitions.h:412
LocalIndexType IndexType
Definition RenderGraphDefinitions.h:346
TRDGHandle & operator++()
Definition RenderGraphDefinitions.h:397
bool operator!=(TRDGHandle Other) const
Definition RenderGraphDefinitions.h:363
TRDGHandle(uint32 InIndex)
Definition RenderGraphDefinitions.h:352
TRDGHandle operator+(int32 Add) const
Definition RenderGraphDefinitions.h:390
static const TRDGHandle Null
Definition RenderGraphDefinitions.h:348
TRDGHandle & operator+=(int32 Increment)
Definition RenderGraphDefinitions.h:369
bool operator>=(TRDGHandle Other) const
Definition RenderGraphDefinitions.h:365
static TRDGHandle Max(TRDGHandle A, TRDGHandle B)
Definition RenderGraphDefinitions.h:419
bool operator>(TRDGHandle Other) const
Definition RenderGraphDefinitions.h:367
bool operator<=(TRDGHandle Other) const
Definition RenderGraphDefinitions.h:364
bool operator==(TRDGHandle Other) const
Definition RenderGraphDefinitions.h:362
TRDGHandle & operator--()
Definition RenderGraphDefinitions.h:404
IndexType GetIndexUnchecked() const
Definition RenderGraphDefinitions.h:359
friend uint32 GetTypeHash(TRDGHandle Handle)
Definition RenderGraphDefinitions.h:429
IndexType GetIndex() const
Definition RenderGraphDefinitions.h:358
U16 Index
Definition radfft.cpp:71
Definition RHIResources.h:246
Definition RenderGraphDefinitions.h:103
Definition RenderGraphDefinitions.h:627
static FRDGTextureDesc Create2DArray(FIntPoint Size, EPixelFormat Format, FClearValueBinding ClearValue, ETextureCreateFlags Flags, uint16 ArraySize, uint8 NumMips=1, uint8 NumSamples=1, uint32 ExtData=0)
Definition RenderGraphDefinitions.h:643
static FRDGTextureDesc Create3D(FIntVector Size, EPixelFormat Format, FClearValueBinding ClearValue, ETextureCreateFlags Flags, uint8 NumMips=1, uint32 ExtData=0)
Definition RenderGraphDefinitions.h:658
static FRDGTextureDesc CreateCube(uint32 Size, EPixelFormat Format, FClearValueBinding ClearValue, ETextureCreateFlags Flags, uint8 NumMips=1, uint8 NumSamples=1, uint32 ExtData=0)
Definition RenderGraphDefinitions.h:675
static FRDGTextureDesc CreateCubeArray(uint32 Size, EPixelFormat Format, FClearValueBinding ClearValue, ETextureCreateFlags Flags, uint16 ArraySize, uint8 NumMips=1, uint8 NumSamples=1, uint32 ExtData=0)
Definition RenderGraphDefinitions.h:692
FRDGTextureDesc(ETextureDimension InDimension, ETextureCreateFlags InFlags, EPixelFormat InFormat, FClearValueBinding InClearValue, FIntPoint InExtent, uint16 InDepth, uint16 InArraySize, uint8 InNumMips, uint8 InNumSamples, uint32 InExtData)
Definition RenderGraphDefinitions.h:725
FRDGTextureDesc()=default
static FRDGTextureDesc Create2D(FIntPoint Size, EPixelFormat Format, FClearValueBinding ClearValue, ETextureCreateFlags Flags, uint8 NumMips=1, uint8 NumSamples=1, uint32 ExtData=0)
Definition RenderGraphDefinitions.h:628
static FRDGTextureDesc CreateRenderTargetTextureDesc(FIntPoint Size, EPixelFormat Format, FClearValueBinding ClearValue, ETextureCreateFlags Flags, const bool bRequireMultiView, uint16 MobileMultiViewRenderTargetNumLayers=2)
Definition RenderGraphDefinitions.h:709
static const uint16 kStencilPlaneSlice
Definition RHITransition.h:23
static const uint16 kDepthPlaneSlice
Definition RHITransition.h:22
Definition RHIResources.h:1689
uint16 Depth
Definition RHIResources.h:1859
EPixelFormat Format
Definition RHIResources.h:1874
ETextureCreateFlags Flags
Definition RHIResources.h:1844
uint32 ExtData
Definition RHIResources.h:1853
uint16 ArraySize
Definition RHIResources.h:1862
uint8 NumMips
Definition RHIResources.h:1865
FClearValueBinding ClearValue
Definition RHIResources.h:1847
uint8 NumSamples
Definition RHIResources.h:1868
Definition UnrealTypeTraits.h:40
Definition NumericLimits.h:41