9#include "Containers/Array.h"
14 #define GPUMASK_CONSTEXPR
16 #define GPUMASK_CONSTEXPR constexpr
20 #define MAX_NUM_GPUS 8
23 #define SGPU_CONSTEXPR
25 #define MAX_NUM_GPUS 1
26 #define GNumExplicitGPUsForRendering 1
27 #define GVirtualMGPU 0
28 #define SGPU_CONSTEXPR GPUMASK_CONSTEXPR
42 inline constexpr uint32 GetMask()
const
72 return FMath::CountTrailingZeros(GetMask());
82 return FPlatformMath::CountBits(GetMask());
87 return FPlatformMath::FloorLog2(GetMask());
92 return FPlatformMath::CountTrailingZeros(GetMask());
123 return (GetMask() & (1 << GPUIndex)) != 0;
128 return (GetMask() & Rhs.GetMask()) == Rhs.GetMask();
133 return (GetMask() & Rhs.GetMask()) != 0;
138 return GetMask() == Rhs.GetMask();
143 return GetMask() != Rhs.GetMask();
149 GPUMask |= Rhs.GetMask();
156 GPUMask &= Rhs.GetMask();
251 return GetFirstIndexInMask();
256 return GetMask() != Rhs.GetMask();
259 inline explicit operator bool()
const
261 return GetMask() != 0;
273 inline uint32 GetMask()
const
280 inline uint32 GetFirstIndexInMask()
const
285 inline constexpr uint32 GetFirstIndexInMask()
const
303#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
#define checkSlow(expr)
Definition AssertionMacros.h:332
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GPUMASK_CONSTEXPR
Definition MultiGPU.h:16
#define GVirtualMGPU
Definition MultiGPU.h:27
#define SGPU_CONSTEXPR
Definition MultiGPU.h:28
#define GNumExplicitGPUsForRendering
Definition MultiGPU.h:26
const bool
Definition NetworkReplayStreaming.h:178
if(Failed) console_printf("Failed.\n")
static constexpr UE_FORCEINLINE_HINT bool IsPowerOfTwo(T Value)
Definition UnrealMathUtility.h:519
Definition MultiGPU.h:217
uint32 operator*() const
Definition MultiGPU.h:249
FIterator & operator++()
Definition MultiGPU.h:231
FIterator operator++(int)
Definition MultiGPU.h:242
FIterator(const uint32 InGPUMask)
Definition MultiGPU.h:218
bool operator!() const
Definition MultiGPU.h:264
bool operator!=(const FIterator &Rhs) const
Definition MultiGPU.h:254
FIterator(FRHIGPUMask InGPUMask)
Definition MultiGPU.h:226
GPUMASK_CONSTEXPR FRHIGPUMask()
Definition MultiGPU.h:63
SGPU_CONSTEXPR uint32 GetNative() const
Definition MultiGPU.h:160
static GPUMASK_CONSTEXPR FRHIGPUMask FromIndex(uint32 GPUIndex)
Definition MultiGPU.h:181
constexpr uint32 ToIndex() const
Definition MultiGPU.h:95
friend FRHIGPUMask::FIterator end(FRHIGPUMask NodeMask)
Definition MultiGPU.h:297
SGPU_CONSTEXPR FRHIGPUMask operator|(FRHIGPUMask Rhs) const
Definition MultiGPU.h:176
bool Invert(FRHIGPUMask &OutInverse) const
Definition MultiGPU.h:202
constexpr bool HasSingleIndex() const
Definition MultiGPU.h:100
static SGPU_CONSTEXPR FRHIGPUMask All()
Definition MultiGPU.h:191
friend FRHIGPUMask::FIterator begin(FRHIGPUMask NodeMask)
Definition MultiGPU.h:292
SGPU_CONSTEXPR bool Contains(uint32 GPUIndex) const
Definition MultiGPU.h:121
SGPU_CONSTEXPR uint32 GetForDisplay() const
Definition MultiGPU.h:166
constexpr uint32 GetLastIndex() const
Definition MultiGPU.h:110
SGPU_CONSTEXPR FRHIGPUMask operator&(FRHIGPUMask Rhs) const
Definition MultiGPU.h:171
static GPUMASK_CONSTEXPR FRHIGPUMask GPU0()
Definition MultiGPU.h:186
SGPU_CONSTEXPR bool operator==(FRHIGPUMask Rhs) const
Definition MultiGPU.h:136
static SGPU_CONSTEXPR FRHIGPUMask FilterGPUsBefore(uint32 GPUIndex)
Definition MultiGPU.h:196
SGPU_CONSTEXPR void operator&=(FRHIGPUMask Rhs)
Definition MultiGPU.h:153
constexpr uint32 GetNumActive() const
Definition MultiGPU.h:105
constexpr uint32 GetFirstIndex() const
Definition MultiGPU.h:115
SGPU_CONSTEXPR bool ContainsAll(FRHIGPUMask Rhs) const
Definition MultiGPU.h:126
SGPU_CONSTEXPR void operator|=(FRHIGPUMask Rhs)
Definition MultiGPU.h:146
SGPU_CONSTEXPR bool operator!=(FRHIGPUMask Rhs) const
Definition MultiGPU.h:141
SGPU_CONSTEXPR bool Intersects(FRHIGPUMask Rhs) const
Definition MultiGPU.h:131