| 190 | return VK_SUCCESS; |
| 191 | } |
| 192 | static VKAPI_ATTR void VKAPI_CALL DestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) { |
| 193 | unique_lock_t lock(global_lock); |
| 194 | // First destroy sub-device objects |
| 195 | // Destroy Queues |
| 196 | for (auto queue_family_map_pair : queue_map[device]) { |
| 197 | for (auto index_queue_pair : queue_map[device][queue_family_map_pair.first]) { |
| 198 | DestroyDispObjHandle((void*)index_queue_pair.second); |
| 199 | } |
| 200 | } |
| 201 | |
| 202 | for (auto& cp : command_pool_map[device]) { |
| 203 | for (auto& cb : command_pool_buffer_map[cp]) { |
| 204 | DestroyDispObjHandle((void*)cb); |
| 205 | } |
| 206 | command_pool_buffer_map.erase(cp); |
| 207 | } |
| 208 | command_pool_map[device].clear(); |
| 209 | |
| 210 | queue_map.erase(device); |
| 211 | buffer_map.erase(device); |
| 212 | image_memory_size_map.erase(device); |
| 213 | // Now destroy device |
| 214 | DestroyDispObjHandle((void*)device); |
| 215 | // TODO: If emulating specific device caps, will need to add intelligence here |
| 216 | } |
| 217 | static VKAPI_ATTR VkResult VKAPI_CALL EnumerateInstanceExtensionProperties(const char* pLayerName, uint32_t* pPropertyCount, |
| 218 | VkExtensionProperties* pProperties) { |
| 219 | // If requesting number of extensions, return that |
nothing calls this directly
no test coverage detected