8#include "Misc/Optional.h"
99 return !(*
this == RHS);
224 return !(*
this == RHS);
277 return !(*
this == RHS);
327 UE_DEPRECATED(5.5,
"Discard aliasing ops are no longer necessary.")
337 UE_DEPRECATED(5.5,
"Discard aliasing ops are no longer necessary.")
352 UE_DEPRECATED(5.5,
"Discard aliasing ops are no longer necessary.")
377 return !(*
this == RHS);
473 :
public RHIValidation::FTransitionResource
477 template <
typename T>
483 return reinterpret_cast<T*
>(Addr);
486 template <
typename T>
517 static uint64 GetTotalAllocationSize()
523 static uint64 GetAlignment()
530#if DO_CHECK || USING_CODE_ANALYSIS
535 int8 PreviousValue = FPlatformAtomics::InterlockedAnd(&State, ~
Mask);
536 checkf((PreviousValue &
Mask) ==
Mask,
TEXT(
"RHIBeginTransitions has been called twice on this transition for at least one pipeline."));
538 if (PreviousValue ==
Mask)
546#if DO_CHECK || USING_CODE_ANALYSIS
551 int8 PreviousValue = FPlatformAtomics::InterlockedAnd(&State, ~
Mask);
552 checkf((PreviousValue &
Mask) ==
Mask,
TEXT(
"RHIEndTransitions has been called twice on this transition for at least one pipeline."));
554 if (PreviousValue ==
Mask)
563 static_assert((
int32(
ERHIPipeline::Num) * 2) < (
sizeof(State) * 8),
"Not enough bits to hold pipeline state.");
566#if DO_CHECK || USING_CODE_ANALYSIS
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define ENABLE_RHI_VALIDATION
Definition Build.h:475
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
const bool
Definition NetworkReplayStreaming.h:178
ERHIAccess
Definition RHIAccess.h:11
EResourceTransitionFlags
Definition RHIDefinitions.h:1517
ERHITransitionCreateFlags
Definition RHIDefinitions.h:1495
ERHIPipeline
Definition RHIPipeline.h:13
ETransitionFlag
Definition RHITransition.h:465
RHI_API uint64 GRHITransitionPrivateData_AlignInBytes
Definition RHITransition.cpp:7
RHI_API FRHIViewableResource * GetViewableResource(const FRHITransitionInfo &Info)
Definition RHITransition.cpp:9
RHI_API uint64 GRHITransitionPrivateData_SizeInBytes
Definition RHITransition.cpp:6
RHI_API FRHITransition * RHICreateTransition(const FRHITransitionCreateInfo &CreateInfo)
Definition DynamicRHI.cpp:811
if(Failed) console_printf("Failed.\n")
Definition RHIResources.h:1581
Definition RHICommandList.h:455
Definition RHICommandList.h:2735
Definition RHIResources.h:3712
Definition RHIResources.h:54
Definition RHIResources.h:2153
Definition RHIResources.h:3294
Definition RHIResources.h:1265
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
Definition RHITransition.h:113
uint64 SizeInBytes
Definition RHITransition.h:114
FRHICommitResourceInfo(uint64 InSizeInBytes)
Definition RHITransition.h:115
Definition RHITransition.h:21
bool operator!=(FRHISubresourceRange const &RHS) const
Definition RHITransition.h:97
uint16 PlaneSlice
Definition RHITransition.h:28
bool IsWholeResource() const
Definition RHITransition.h:70
uint16 ArraySlice
Definition RHITransition.h:27
FRHISubresourceRange(uint32 InMipIndex, uint32 InArraySlice, uint32 InPlaneSlice)
Definition RHITransition.h:32
bool operator==(FRHISubresourceRange const &RHS) const
Definition RHITransition.h:90
bool IsAllPlaneSlices() const
Definition RHITransition.h:65
FRHISubresourceRange(uint16 InMipIndex, uint16 InArraySlice, uint16 InPlaneSlice)
Definition RHITransition.h:46
static const uint16 kStencilPlaneSlice
Definition RHITransition.h:23
static const uint16 kAllSubresources
Definition RHITransition.h:24
static const uint16 kDepthPlaneSlice
Definition RHITransition.h:22
bool IgnoreDepthPlane() const
Definition RHITransition.h:80
FRHISubresourceRange()=default
bool IsZeroIndexResource() const
Definition RHITransition.h:75
bool IsAllMips() const
Definition RHITransition.h:55
bool IgnoreStencilPlane() const
Definition RHITransition.h:85
uint16 MipIndex
Definition RHITransition.h:26
bool IsAllArraySlices() const
Definition RHITransition.h:60
Definition RHITransition.h:450
FRHIViewableResource * Resource
Definition RHITransition.h:458
FRHITrackedAccessInfo()=default
FRHITrackedAccessInfo(FRHIViewableResource *InResource, ERHIAccess InAccess, ERHIPipeline InPipelines)
Definition RHITransition.h:453
Definition RHITransition.h:433
ERHIPipeline Pipelines
Definition RHITransition.h:446
FRHITrackedAccess(ERHIAccess InAccess, ERHIPipeline InPipelines)
Definition RHITransition.h:440
FRHITrackedAccess()=default
ERHIAccess Access
Definition RHITransition.h:445
FRHITrackedAccess(ERHIAccess InAccess)
Definition RHITransition.h:436
Definition RHITransition.h:282
EAction
Definition RHITransition.h:300
enum FRHITransientAliasingInfo::EType Type
TArrayView< const FRHITransientAliasingOverlap > Overlaps
Definition RHITransition.h:291
class FRHIResource * Resource
Definition RHITransition.h:285
FRHITransientAliasingInfo()=default
static FRHITransientAliasingInfo Acquire(class FRHITexture *Texture, TArrayView< const FRHITransientAliasingOverlap > InOverlaps)
Definition RHITransition.h:307
bool operator!=(const FRHITransientAliasingInfo &RHS) const
Definition RHITransition.h:375
bool operator==(const FRHITransientAliasingInfo &RHS) const
Definition RHITransition.h:368
bool IsBuffer() const
Definition RHITransition.h:363
bool IsTexture() const
Definition RHITransition.h:358
EType
Definition RHITransition.h:294
bool IsDiscard() const
Definition RHITransition.h:353
class FRHIBuffer * Buffer
Definition RHITransition.h:287
class FRHITexture * Texture
Definition RHITransition.h:286
static FRHITransientAliasingInfo Acquire(class FRHIBuffer *Buffer, TArrayView< const FRHITransientAliasingOverlap > InOverlaps)
Definition RHITransition.h:317
bool IsAcquire() const
Definition RHITransition.h:347
enum FRHITransientAliasingInfo::EAction Action
Definition RHITransition.h:229
EType
Definition RHITransition.h:238
bool IsBuffer() const
Definition RHITransition.h:265
class FRHIResource * Resource
Definition RHITransition.h:232
bool IsTexture() const
Definition RHITransition.h:260
FRHITransientAliasingOverlap(FRHIBuffer *InBuffer)
Definition RHITransition.h:255
enum FRHITransientAliasingOverlap::EType Type
class FRHITexture * Texture
Definition RHITransition.h:233
FRHITransientAliasingOverlap(FRHITexture *InTexture)
Definition RHITransition.h:250
FRHITransientAliasingOverlap()=default
class FRHIBuffer * Buffer
Definition RHITransition.h:234
bool operator==(const FRHITransientAliasingOverlap &Other) const
Definition RHITransition.h:270
FRHITransientAliasingOverlap(FRHIResource *InResource, EType InType)
Definition RHITransition.h:245
bool operator!=(const FRHITransientAliasingOverlap &RHS) const
Definition RHITransition.h:275
Definition RHITransition.h:382
ERHITransitionCreateFlags Flags
Definition RHITransition.h:400
TArrayView< const FRHITransientAliasingInfo > AliasingInfos
Definition RHITransition.h:402
FRHITransitionCreateInfo()=default
ERHIPipeline SrcPipelines
Definition RHITransition.h:398
ERHIPipeline DstPipelines
Definition RHITransition.h:399
TArrayView< const FRHITransitionInfo > TransitionInfos
Definition RHITransition.h:401
FRHITransitionCreateInfo(ERHIPipeline InSrcPipelines, ERHIPipeline InDstPipelines, ERHITransitionCreateFlags InFlags=ERHITransitionCreateFlags::None, TArrayView< const FRHITransitionInfo > InTransitionInfos={}, TArrayView< const FRHITransientAliasingInfo > InAliasingInfos={})
Definition RHITransition.h:385
bool operator==(FRHITransitionCreateInfo const &RHS) const
Definition RHITransition.h:404
Definition RHITransition.h:119
class FRHIBuffer * Buffer
Definition RHITransition.h:125
enum FRHITransitionInfo::EType Type
ERHIAccess AccessBefore
Definition RHITransition.h:139
ERHIAccess AccessAfter
Definition RHITransition.h:140
class FRHIUnorderedAccessView * UAV
Definition RHITransition.h:126
FRHITransitionInfo(class FRHIBuffer *InRHIBuffer, ERHIAccess InNewState)
Definition RHITransition.h:206
FRHITransitionInfo(class FRHIUnorderedAccessView *InUAV, ERHIAccess InNewState)
Definition RHITransition.h:200
FRHITransitionInfo(class FRHIBuffer *InRHIBuffer, ERHIAccess InPreviousState, ERHIAccess InNewState, EResourceTransitionFlags InFlags=EResourceTransitionFlags::None)
Definition RHITransition.h:170
FRHITransitionInfo(class FRHIRayTracingAccelerationStructure *InBVH, ERHIAccess InPreviousState, ERHIAccess InNewState, EResourceTransitionFlags InFlags=EResourceTransitionFlags::None)
Definition RHITransition.h:186
class FRHIResource * Resource
Definition RHITransition.h:122
bool operator==(FRHITransitionInfo const &RHS) const
Definition RHITransition.h:212
class FRHIRayTracingAccelerationStructure * BVH
Definition RHITransition.h:127
FRHITransitionInfo(class FRHIBuffer *InRHIBuffer, ERHIAccess InPreviousState, ERHIAccess InNewState, FRHICommitResourceInfo InCommitInfo)
Definition RHITransition.h:178
FRHITransitionInfo()=default
EResourceTransitionFlags Flags
Definition RHITransition.h:141
FRHITransitionInfo(class FRHITexture *InTexture, ERHIAccess InNewState)
Definition RHITransition.h:194
class FRHIViewableResource * ViewableResource
Definition RHITransition.h:123
FRHITransitionInfo(class FRHIUnorderedAccessView *InUAV, ERHIAccess InPreviousState, ERHIAccess InNewState, EResourceTransitionFlags InFlags=EResourceTransitionFlags::None)
Definition RHITransition.h:162
TOptional< FRHICommitResourceInfo > CommitInfo
Definition RHITransition.h:142
FRHITransitionInfo(class FRHITexture *InTexture, ERHIAccess InPreviousState, ERHIAccess InNewState, EResourceTransitionFlags InFlags=EResourceTransitionFlags::None, uint32 InMipIndex=kAllSubresources, uint32 InArraySlice=kAllSubresources, uint32 InPlaneSlice=kAllSubresources)
Definition RHITransition.h:146
class FRHITexture * Texture
Definition RHITransition.h:124
EType
Definition RHITransition.h:131
bool operator!=(FRHITransitionInfo const &RHS) const
Definition RHITransition.h:222
Definition RHITransition.h:475
const T * GetPrivateData() const
Definition RHITransition.h:487
bool AllowInRenderingPass() const
Definition RHITransition.h:492
friend struct FRHICommandBeginTransitions
Definition RHITransition.h:513
T * GetPrivateData()
Definition RHITransition.h:478
friend struct FRHICommandEndTransitions
Definition RHITransition.h:514
friend RHI_API FRHITransition * RHICreateTransition(const FRHITransitionCreateInfo &CreateInfo)
Definition DynamicRHI.cpp:811
friend struct FRHICommandResourceTransition
Definition RHITransition.h:515
Definition NumericLimits.h:41
Definition Optional.h:131