Go to the documentation of this file.
45 class RenderDeviceVkImpl;
46 class VulkanRingBuffer;
47 class VulkanDynamicMemoryManager;
68 #ifdef DILIGENT_DEVELOPMENT
69 , dvpFrameNumber{rhs.dvpFrameNumber}
72 rhs.pDynamicMemMgr =
nullptr;
73 rhs.AlignedOffset = 0;
75 #ifdef DILIGENT_DEVELOPMENT
76 rhs.dvpFrameNumber = 0;
86 rhs.pDynamicMemMgr =
nullptr;
87 rhs.AlignedOffset = 0;
89 #ifdef DILIGENT_DEVELOPMENT
90 dvpFrameNumber = rhs.dvpFrameNumber;
91 rhs.dvpFrameNumber = 0;
99 #ifdef DILIGENT_DEVELOPMENT
100 Uint64 dvpFrameNumber = 0;
150 const VkDeviceSize m_DefaultAlignment;
151 const Uint64 m_CommandQueueMask;
187 m_GlobalDynamicMemMgr{DynamicMemMgr},
188 m_HeapName {std::move(HeapName)},
189 m_MasterBlockSize (PageSize)
218 const std::string m_HeapName;
220 std::vector<MasterBlock> m_MasterBlocks;
223 const Uint32 m_MasterBlockSize;
224 Uint32 m_AvailableSize = 0;
226 Uint32 m_CurrAlignedSize = 0;
227 Uint32 m_CurrUsedSize = 0;
228 Uint32 m_PeakAlignedSize = 0;
229 Uint32 m_PeakUsedSize = 0;
230 Uint32 m_CurrAllocatedSize = 0;
231 Uint32 m_PeakAllocatedSize = 0;
Definition: VulkanDynamicHeap.hpp:50
VulkanDynamicAllocation & operator=(VulkanDynamicAllocation &&rhs) noexcept
Definition: VulkanDynamicHeap.hpp:81
Render device implementation in Vulkan backend.
Definition: RenderDeviceVkImpl.hpp:58
VulkanDynamicAllocation Allocate(Uint32 SizeInBytes, Uint32 Alignment)
Definition: VulkanDynamicHeap.cpp:224
VulkanDynamicAllocation & operator=(const VulkanDynamicAllocation &)=delete
VkBuffer GetVkBuffer() const
Definition: VulkanDynamicHeap.hpp:136
VulkanDynamicAllocation() noexcept
Definition: VulkanDynamicHeap.hpp:52
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
VulkanDynamicMemoryManager(IMemoryAllocator &Allocator, class RenderDeviceVkImpl &DeviceVk, Uint32 Size, Uint64 CommandQueueMask)
Definition: VulkanDynamicHeap.cpp:47
Definition: VariableSizeAllocationsManager.hpp:156
DEFINE_VULKAN_OBJECT_WRAPPER(DeviceMemory) DeviceMemoryWrapper
Definition: VulkanLogicalDevice.hpp:73
VulkanDynamicHeap(VulkanDynamicMemoryManager &DynamicMemMgr, std::string HeapName, Uint32 PageSize)
Definition: VulkanDynamicHeap.hpp:186
VulkanDynamicMemoryManager * pDynamicMemMgr
Definition: VulkanDynamicHeap.hpp:96
VulkanDynamicAllocation(VulkanDynamicMemoryManager &_DynamicMemMgr, size_t _AlignedOffset, size_t _Size) noexcept
Definition: VulkanDynamicHeap.hpp:55
VulkanDynamicAllocation(VulkanDynamicAllocation &&rhs) noexcept
Definition: VulkanDynamicHeap.hpp:64
static constexpr const Uint32 MasterBlockAlignment
Definition: VulkanDynamicHeap.hpp:142
DEFINE_VULKAN_OBJECT_WRAPPER(Buffer) BufferWrapper
Definition: VulkanLogicalDevice.hpp:69
TBase::MasterBlock MasterBlock
Definition: VulkanDynamicHeap.hpp:122
TBase::OffsetType OffsetType
Definition: VulkanDynamicHeap.hpp:121
MasterBlock AllocateMasterBlock(OffsetType SizeInBytes, OffsetType Alignment)
Definition: VulkanDynamicHeap.cpp:142
Definition: VulkanDynamicHeap.hpp:182
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
void Destroy()
Definition: VulkanDynamicHeap.cpp:118
size_t Size
Definition: VulkanDynamicHeap.hpp:98
~VulkanDynamicHeap()
Definition: VulkanDynamicHeap.cpp:301
size_t GetAllocatedMasterBlockCount() const
Definition: VulkanDynamicHeap.hpp:214
VulkanDynamicHeap & operator=(const VulkanDynamicHeap &)=delete
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:41
static constexpr OffsetType InvalidOffset
Definition: VulkanDynamicHeap.hpp:212
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
~VulkanDynamicMemoryManager()
Definition: VulkanDynamicHeap.cpp:129
VulkanDynamicMemoryManager::OffsetType OffsetType
Definition: VulkanDynamicHeap.hpp:209
Definition: DynamicHeap.hpp:98
Definition: VulkanDynamicHeap.hpp:117
Uint8 * GetCPUAddress() const
Definition: VulkanDynamicHeap.hpp:137
size_t AlignedOffset
Definition: VulkanDynamicHeap.hpp:97
void ReleaseMasterBlocks(RenderDeviceVkImpl &DeviceVkImpl, Uint64 CmdQueueMask)
Definition: VulkanDynamicHeap.cpp:288
VariableSizeAllocationsManager::Allocation MasterBlock
Definition: DynamicHeap.hpp:102
VulkanDynamicMemoryManager & operator=(const VulkanDynamicMemoryManager &)=delete
VariableSizeAllocationsManager::OffsetType OffsetType
Definition: DynamicHeap.hpp:101
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37