16class JPH_EXPORT ComputeSystemVKWithAllocator :
public ComputeSystemVK
22 virtual bool CreateBuffer(VkDeviceSize inSize, VkBufferUsageFlags inUsage, VkMemoryPropertyFlags inProperties,
BufferVK &outBuffer)
override;
23 virtual void FreeBuffer(
BufferVK &ioBuffer)
override;
24 virtual void * MapBuffer(
BufferVK &ioBuffer)
override;
25 virtual void UnmapBuffer(
BufferVK &ioBuffer)
override;
28 virtual bool InitializeMemory()
override;
29 virtual void ShutdownMemory()
override;
31 uint32 FindMemoryType(
uint32 inTypeFilter, VkMemoryPropertyFlags inProperties)
const;
32 void AllocateMemory(VkDeviceSize inSize,
uint32 inMemoryTypeBits, VkMemoryPropertyFlags inProperties,
MemoryVK &ioMemory);
35 VkPhysicalDeviceMemoryProperties mMemoryProperties;
40 static constexpr VkDeviceSize cMinAllocSize = 512;
41 static constexpr VkDeviceSize cMaxAllocSize = 65536;
42 static constexpr VkDeviceSize cBlockSize = 524288;
46 bool operator == (
const MemoryKey &inRHS)
const
48 return mSize == inRHS.mSize && mProperties == inRHS.mProperties;
52 VkMemoryPropertyFlags mProperties;
65 MemoryCache mMemoryCache;
#define JPH_EXPORT
Definition Core.h:275
#define JPH_NAMESPACE_END
Definition Core.h:425
std::uint32_t uint32
Definition Core.h:503
#define JPH_NAMESPACE_BEGIN
Definition Core.h:419
#define JPH_MAKE_HASH_STRUCT(type, name,...)
Definition HashCombine.h:198
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:50
Simple wrapper class to manage a Vulkan buffer.
Definition BufferVK.h:34
Simple wrapper class to manage a Vulkan memory block.
Definition BufferVK.h:15
Definition Reference.h:107
Definition UnorderedMap.h:30