UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHIDescriptorAllocator.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Array.h"
6#include "RHIDefinitions.h"
7#include "Stats/Stats.h"
8
15
27
29{
30public:
34
36 RHICORE_API void Shutdown();
37
39
42
45
46 // Get the range of allocated descriptors. Useful for determining the smallest range to copy between heaps.
48
49 uint32 GetCapacity() const { return Capacity; }
50
51private:
52
53 RHICORE_API TOptional<FRHIDescriptorAllocation> AllocateInternal(uint32 NumDescriptors);
54
55 void RecordAlloc(uint32 Count)
56 {
57#if STATS
58 for (TStatId Stat : Stats)
59 {
61 }
62#endif
63 }
64
65 void RecordFree(uint32 Count)
66 {
67#if STATS
68 for (TStatId Stat : Stats)
69 {
71 }
72#endif
73 }
74
76 uint32 Capacity = 0;
77
78 FCriticalSection CriticalSection;
79
80#if STATS
81 TArray<TStatId> Stats;
82#endif
83};
84
85
87{
88public:
91
94
97
#define DEC_DWORD_STAT_BY_FName(Stat, Amount)
Definition Stats.h:719
#define INC_DWORD_STAT_BY_FName(Stat, Amount)
Definition Stats.h:715
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
void Init()
Definition LockFreeList.h:4
ERHIDescriptorTypeMask
Definition RHIDefinitions.h:1367
ERHIDescriptorType
Definition RHIDefinitions.h:1348
constexpr ERHIDescriptorTypeMask RHIDescriptorTypeMaskFromType(ERHIDescriptorType InType)
Definition RHIDefinitions.h:1391
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RHIDescriptorAllocator.h:29
RHICORE_API TOptional< FRHIDescriptorAllocation > ResizeGrowAndAllocate(uint32 NewCapacity, uint32 NumAllocations)
Definition RHIDescriptorAllocator.cpp:36
RHICORE_API void Shutdown()
Definition RHIDescriptorAllocator.cpp:30
RHICORE_API TOptional< FRHIDescriptorAllocation > Allocate(uint32 NumDescriptors)
Definition RHIDescriptorAllocator.cpp:68
RHICORE_API FRHIDescriptorAllocator()
Definition RHIDescriptorAllocator.cpp:7
RHICORE_API bool GetAllocatedRange(FRHIDescriptorAllocatorRange &OutRange)
Definition RHIDescriptorAllocator.cpp:230
RHICORE_API ~FRHIDescriptorAllocator()
Definition RHIDescriptorAllocator.cpp:16
uint32 GetCapacity() const
Definition RHIDescriptorAllocator.h:49
Definition RHIDescriptorAllocator.h:87
ERHIDescriptorTypeMask GetTypeMask() const
Definition RHIDescriptorAllocator.h:102
RHICORE_API FRHIDescriptorHandle Allocate(ERHIDescriptorType InType)
Definition RHIDescriptorAllocator.cpp:276
bool HandlesAllocation(ERHIDescriptorType InType) const
Definition RHIDescriptorAllocator.h:107
bool HandlesAllocations(ERHIDescriptorTypeMask InTypeMask) const
Definition RHIDescriptorAllocator.h:112
uint32 GetCapacity() const
Definition RHIDescriptorAllocator.h:49
Definition RHIDescriptorAllocator.h:122
RHICORE_API FRHIDescriptorHandle Allocate(ERHIDescriptorType InType)
Definition RHIDescriptorAllocator.cpp:309
Definition Array.h:670
Definition RHIDescriptorAllocator.h:17
FRHIDescriptorAllocation(uint32 InStartIndex, uint32 InCount)
Definition RHIDescriptorAllocator.h:18
uint32 Count
Definition RHIDescriptorAllocator.h:25
uint32 StartIndex
Definition RHIDescriptorAllocator.h:24
Definition RHIDescriptorAllocator.h:10
FRHIDescriptorAllocatorRange(uint32 InFirst, uint32 InLast)
Definition RHIDescriptorAllocator.h:11
uint32 First
Definition RHIDescriptorAllocator.h:12
uint32 Last
Definition RHIDescriptorAllocator.h:13
Definition RHIDefinitions.h:1401
Definition Optional.h:131
Definition LightweightStats.h:416