16class JPH_EXPORT ComputeSystemVKWithAllocator :
public ComputeSystemVK
22 bool Initialize(VkInstance inInstance, VkPhysicalDevice inPhysicalDevice, PFN_vkGetInstanceProcAddr inGetInstanceProcAddr, PFN_vkGetDeviceProcAddr inVkGetDeviceProcAddr, VkDevice inDevice,
uint32 inComputeQueueIndex,
ComputeSystemResult &outResult);
25 virtual bool CreateBuffer(VkDeviceSize inSize, VkBufferUsageFlags inUsage, VkMemoryPropertyFlags inProperties, BufferVK &outBuffer)
override;
26 virtual void FreeBuffer(BufferVK &ioBuffer)
override;
27 virtual void * MapBuffer(BufferVK &ioBuffer)
override;
28 virtual void UnmapBuffer(BufferVK &ioBuffer)
override;
31 virtual bool InitializeMemory()
override;
32 virtual void ShutdownMemory()
override;
34 uint32 FindMemoryType(
uint32 inTypeFilter, VkMemoryPropertyFlags inProperties)
const;
35 void AllocateMemory(VkDeviceSize inSize,
uint32 inMemoryTypeBits, VkMemoryPropertyFlags inProperties, MemoryVK &ioMemory);
36 void FreeMemory(MemoryVK &ioMemory);
38 VkPhysicalDeviceMemoryProperties mMemoryProperties;
40 PFN_vkGetPhysicalDeviceMemoryProperties mVkGetPhysicalDeviceMemoryProperties =
nullptr;
45 static constexpr VkDeviceSize cMinAllocSize = 512;
46 static constexpr VkDeviceSize cMaxAllocSize = 65536;
47 static constexpr VkDeviceSize cBlockSize = 524288;
51 bool operator == (
const MemoryKey &inRHS)
const
53 return mSize == inRHS.mSize && mProperties == inRHS.mProperties;
57 VkMemoryPropertyFlags mProperties;
64 Ref<MemoryVK> mMemory;
68 using MemoryCache = UnorderedMap<MemoryKey, Array<Memory>, MemoryKeyHasher>;
70 MemoryCache mMemoryCache;
Result< Ref< ComputeSystem > > ComputeSystemResult
Definition ComputeSystem.h:37
#define JPH_EXPORT
Definition Core.h:286
#define JPH_NAMESPACE_END
Definition Core.h:469
std::uint32_t uint32
Definition Core.h:549
#define JPH_NAMESPACE_BEGIN
Definition Core.h:463
#define JPH_MAKE_HASH_STRUCT(type, name,...)
Definition HashCombine.h:198
#define JPH_DECLARE_RTTI_VIRTUAL(linkage, class_name)
Definition RTTI.h:245