11 typedef plUInt32 StorageType;
14 DedicatedMemory = 0x00000001,
15 NeverAllocate = 0x00000002,
17 CanAlias = 0x00000200,
18 HostAccessSequentialWrite = 0x00000400,
19 HostAccessRandom = 0x00000800,
20 StrategyMinMemory = 0x00010000,
21 StrategyMinTime = 0x00020000,
27 StorageType DedicatedMemory : 1;
28 StorageType NeverAllocate : 1;
29 StorageType Mapped : 1;
30 StorageType UnusedBit3 : 1;
32 StorageType UnusedBit4 : 1;
33 StorageType UnusedBit5 : 1;
34 StorageType UnusedBit6 : 1;
35 StorageType UnusedBit7 : 1;
37 StorageType UnusedBit8 : 1;
38 StorageType CanAlias : 1;
39 StorageType HostAccessSequentialWrite : 1;
40 StorageType HostAccessRandom : 1;
42 StorageType UnusedBit12 : 1;
43 StorageType UnusedBit13 : 1;
44 StorageType UnusedBit14 : 1;
45 StorageType StrategyMinMemory : 1;
47 StorageType StrategyMinTime : 1;
96 static vk::Result Initialize(vk::PhysicalDevice physicalDevice, vk::Device device, vk::Instance instance);
97 static void DeInitialize();
100 static void DestroyImage(vk::Image& image, plVulkanAllocation& alloc);
103 static void DestroyBuffer(vk::Buffer& buffer, plVulkanAllocation& alloc);
106 static void SetAllocationUserData(plVulkanAllocation alloc,
const char* pUserData);
108 static vk::Result MapMemory(plVulkanAllocation alloc,
void** pData);
109 static void UnmapMemory(plVulkanAllocation alloc);
110 static vk::Result FlushAllocation(plVulkanAllocation alloc, vk::DeviceSize offset = 0, vk::DeviceSize size = VK_WHOLE_SIZE);
111 static vk::Result InvalidateAllocation(plVulkanAllocation alloc, vk::DeviceSize offset = 0, vk::DeviceSize size = VK_WHOLE_SIZE);
116 static Impl* m_pImpl;