icd: thread protect maps
Lock to protect threaded access to queue_map and mapped_memory_map.
diff --git a/scripts/mock_icd_generator.py b/scripts/mock_icd_generator.py
index 4d6c105..606436a 100644
--- a/scripts/mock_icd_generator.py
+++ b/scripts/mock_icd_generator.py
@@ -449,6 +449,7 @@
return VK_SUCCESS;
''',
'vkDestroyDevice': '''
+ unique_lock_t lock(global_lock);
// First destroy sub-device objects
// Destroy Queues
for (auto dev_queue_map_pair : queue_map) {
@@ -464,6 +465,7 @@
// TODO: If emulating specific device caps, will need to add intelligence here
''',
'vkGetDeviceQueue': '''
+ unique_lock_t lock(global_lock);
auto queue = queue_map[device][queueFamilyIndex][queueIndex];
if (queue) {
*pQueue = queue;
@@ -641,6 +643,7 @@
GetImageMemoryRequirements(device, pInfo->image, &pMemoryRequirements->memoryRequirements);
''',
'vkMapMemory': '''
+ unique_lock_t lock(global_lock);
// TODO: Just hard-coding 4k whole size for now
if (VK_WHOLE_SIZE == size)
size = 4096;
@@ -650,6 +653,7 @@
return VK_SUCCESS;
''',
'vkUnmapMemory': '''
+ unique_lock_t lock(global_lock);
for (auto map_addr : mapped_memory_map[memory]) {
free(map_addr);
}