| 320 | allocated_memory_size_map.erase(memory); |
| 321 | } |
| 322 | static VKAPI_ATTR VkResult VKAPI_CALL MapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, |
| 323 | VkMemoryMapFlags flags, void** ppData) { |
| 324 | unique_lock_t lock(global_lock); |
| 325 | if (VK_WHOLE_SIZE == size) { |
| 326 | if (allocated_memory_size_map.count(memory) != 0) |
| 327 | size = allocated_memory_size_map[memory] - offset; |
| 328 | else |
| 329 | size = 0x10000; |
| 330 | } |
| 331 | void* map_addr = malloc((size_t)size); |
| 332 | mapped_memory_map[memory].push_back(map_addr); |
| 333 | *ppData = map_addr; |
| 334 | return VK_SUCCESS; |
| 335 | } |
| 336 | static VKAPI_ATTR void VKAPI_CALL UnmapMemory(VkDevice device, VkDeviceMemory memory) { |
| 337 | unique_lock_t lock(global_lock); |
| 338 | for (auto map_addr : mapped_memory_map[memory]) { |