26template <
typename ObjectType0,
typename ObjectType1>
32static_assert((8 *
sizeof(
CBVSlotMask)) >=
MAX_CBS,
"CBVSlotMask isn't large enough to cover all CBs. Please increase the size.");
33static_assert((8 *
sizeof(
CBVSlotMask)) >=
MAX_ROOT_CBVS,
"CBVSlotMask isn't large enough to cover all CBs. Please increase the size.");
42static_assert((8 *
sizeof(
SRVSlotMask)) >=
MAX_SRVS,
"SRVSlotMask isn't large enough to cover all SRVs. Please increase the size.");
45static_assert((8 *
sizeof(
SamplerSlotMask)) >=
MAX_SAMPLERS,
"SamplerSlotMask isn't large enough to cover all Samplers. Please increase the size.");
48static_assert((8 *
sizeof(
UAVSlotMask)) >=
MAX_UAVS,
"UAVSlotMask isn't large enough to cover all UAVs. Please increase the size.");
162template <
typename ObjectType>
199 template <
typename ReturnType,
typename CreationCoreFunction,
typename CreationParameterFunction>
205 for (
uint32 GPUIndex : GPUMask)
223 ObjectOut->LinkedObjects.GPUMask = GPUMask;
274 if (InObject !=
nullptr)
283 Object = ++GPUIterator ? Object->GetLinkedObject(*GPUIterator) :
nullptr;
287 explicit operator bool()
const {
return Object !=
nullptr; }
295 ObjectType*
Get()
const {
return Object; }
328template <
typename ObjectType0,
typename ObjectType1>
347 Object0 =
static_cast<ObjectType0*
>(Object0->GetLinkedObject(*GPUIterator));
348 Object1 =
static_cast<ObjectType1*
>(Object1->GetLinkedObject(*GPUIterator));
358 explicit operator bool()
const {
return static_cast<bool>(GPUIterator); }
378template <
typename TObjectType>
397#ifndef ENABLE_COPY_BUFFER_REGION_CHECK
398 #define ENABLE_COPY_BUFFER_REGION_CHECK 1
401#ifndef ENABLE_COPY_TEXTURE_REGION_CHECK
402 #define ENABLE_COPY_TEXTURE_REGION_CHECK 1
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define CA_ASSUME(Expr)
Definition CoreMiscDefines.h:126
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 SamplerSlotMask
Definition D3D12RHICommon.h:44
uint16 CBVSlotMask
Definition D3D12RHICommon.h:29
uint32 SRVSlotMask
Definition D3D12RHICommon.h:40
uint16 UAVSlotMask
Definition D3D12RHICommon.h:47
#define MAX_ROOT_CBVS
Definition D3D12RHIDefinitions.h:57
#define MAX_UAVS
Definition D3D12RHI.h:19
#define MAX_SAMPLERS
Definition D3D12RHI.h:18
#define MAX_CBS
Definition D3D12RHI.h:20
#define MAX_SRVS
Definition D3D12RHI.h:17
FORCEINLINE uint32 ToIndex(FHairStrandsTiles::ETileType Type)
Definition HairStrandsData.h:93
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define SGPU_CONSTEXPR
Definition MultiGPU.h:28
const bool
Definition NetworkReplayStreaming.h:178
if(Failed) console_printf("Failed.\n")
Definition D3D12RHICommon.h:54
FD3D12Adapter * ParentAdapter
Definition D3D12RHICommon.h:56
FD3D12AdapterChild(FD3D12Adapter *InParent=nullptr)
Definition D3D12RHICommon.h:59
FORCEINLINE FD3D12Adapter * GetParentAdapter() const
Definition D3D12RHICommon.h:61
void SetParentAdapter(FD3D12Adapter *InParent)
Definition D3D12RHICommon.h:70
Definition D3D12Adapter.h:136
Definition D3D12CommandContext.h:513
Definition D3D12CommandContext.h:1193
Definition D3D12RHICommon.h:78
FORCEINLINE FD3D12Device * GetParentDevice() const
Definition D3D12RHICommon.h:85
FD3D12DeviceChild(FD3D12Device *InParent=nullptr)
Definition D3D12RHICommon.h:83
FD3D12Device * GetParentDevice_Unsafe() const
Definition D3D12RHICommon.h:93
FD3D12Device * Parent
Definition D3D12RHICommon.h:80
Definition D3D12Device.h:176
Definition D3D12RHICommon.h:100
SGPU_CONSTEXPR FRHIGPUMask GetGPUMask() const
Definition D3D12RHICommon.h:115
FD3D12GPUObject(FRHIGPUMask InGPUMask, FRHIGPUMask InVisibiltyMask)
Definition D3D12RHICommon.h:102
SGPU_CONSTEXPR FRHIGPUMask GetVisibilityMask() const
Definition D3D12RHICommon.h:116
Definition D3D12RHICommon.h:268
FLinkedObjectIterator(FD3D12LinkedAdapterObject *InObject)
Definition D3D12RHICommon.h:270
bool operator!=(FLinkedObjectIterator &Other) const
Definition D3D12RHICommon.h:291
bool operator==(FLinkedObjectIterator &Other) const
Definition D3D12RHICommon.h:290
ObjectType * Get() const
Definition D3D12RHICommon.h:295
bool operator!() const
Definition D3D12RHICommon.h:288
ObjectType & operator*() const
Definition D3D12RHICommon.h:293
ObjectType * operator->() const
Definition D3D12RHICommon.h:294
FLinkedObjectIterator & operator++()
Definition D3D12RHICommon.h:281
Definition D3D12RHICommon.h:164
ObjectType * GetLinkedObject(uint32 GPUIndex) const
Definition D3D12RHICommon.h:239
static ReturnType * CreateLinkedObjects(FRHIGPUMask GPUMask, const CreationParameterFunction &pfnGetCreationParameter, const CreationCoreFunction &pfnCreationCore)
Definition D3D12RHICommon.h:200
FORCEINLINE bool IsHeadLink() const
Definition D3D12RHICommon.h:190
ObjectType LinkedObjectType
Definition D3D12RHICommon.h:166
ObjectType * GetFirstLinkedObject() const
Definition D3D12RHICommon.h:249
FLinkedObjectIterator begin()
Definition D3D12RHICommon.h:302
FLinkedObjectIterator end()
Definition D3D12RHICommon.h:303
~FD3D12LinkedAdapterObject()
Definition D3D12RHICommon.h:169
FRHIGPUMask GetLinkedObjectsGPUMask() const
Definition D3D12RHICommon.h:258
FD3D12LinkedAdapterObject()
Definition D3D12RHICommon.h:306
Definition D3D12RHICommon.h:153
FD3D12MultiNodeGPUObject(FRHIGPUMask NodeMask, FRHIGPUMask VisibiltyMask)
Definition D3D12RHICommon.h:155
Definition D3D12RHICommon.h:128
SGPU_CONSTEXPR uint32 GetGPUIndex() const
Definition D3D12RHICommon.h:143
FD3D12SingleNodeGPUObject(FRHIGPUMask GPUMask)
Definition D3D12RHICommon.h:130
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition D3D12RHICommon.h:330
ObjectType1 * GetSecond() const
Definition D3D12RHICommon.h:362
TD3D12DualLinkedObjectIterator(FD3D12LinkedAdapterObject< typename ObjectType0::LinkedObjectType > *InObject0, FD3D12LinkedAdapterObject< typename ObjectType1::LinkedObjectType > *InObject1)
Definition D3D12RHICommon.h:332
ObjectType0 * GetFirst() const
Definition D3D12RHICommon.h:361
TD3D12DualLinkedObjectIterator & operator++()
Definition D3D12RHICommon.h:343
uint32 GetGPUIndex() const
Definition D3D12RHICommon.h:363
bool operator!() const
Definition D3D12RHICommon.h:359
Definition LockFreeList.h:904
Definition StaticArray.h:26
Definition MultiGPU.h:217
static GPUMASK_CONSTEXPR FRHIGPUMask GPU0()
Definition MultiGPU.h:186
SGPU_CONSTEXPR bool Intersects(FRHIGPUMask Rhs) const
Definition MultiGPU.h:131
Definition D3D12RHICommon.h:380
void CleanupResources()
Definition D3D12RHICommon.h:386
~TD3D12ObjectPool()
Definition D3D12RHICommon.h:381
Definition D3D12RHICommon.h:374