18 #include <vsg/core/Object.h>
19 #include <vsg/state/BufferInfo.h>
20 #include <vsg/vk/ResourceRequirements.h>
34 VkDeviceSize minimumBufferSize = 16 * 1024 * 1024;
35 VkDeviceSize minimumDeviceMemorySize = 16 * 1024 * 1024;
37 VkDeviceSize computeMemoryTotalAvailable()
const;
38 VkDeviceSize computeMemoryTotalReserved()
const;
39 VkDeviceSize computeBufferTotalAvailable()
const;
40 VkDeviceSize computeBufferTotalReserved()
const;
42 ref_ptr<BufferInfo> reserveBuffer(VkDeviceSize totalSize, VkDeviceSize alignment, VkBufferUsageFlags bufferUsageFlags, VkSharingMode sharingMode, VkMemoryPropertyFlags memoryProperties);
44 using DeviceMemoryOffset = std::pair<ref_ptr<DeviceMemory>, VkDeviceSize>;
45 DeviceMemoryOffset reserveMemory(VkMemoryRequirements memRequirements, VkMemoryPropertyFlags memoryProperties,
void* pNextAllocInfo =
nullptr);
48 mutable std::mutex _mutex;
51 using MemoryPools = std::vector<ref_ptr<DeviceMemory>>;
52 MemoryPools memoryPools;
54 using BufferPools = std::vector<ref_ptr<Buffer>>;
55 BufferPools bufferPools;
Definition: MemoryBufferPools.h:28
ResourceRequirements provides a container for various Vulkan resource requirements that can be used t...
Definition: ResourceRequirements.h:30