diff options
Diffstat (limited to 'layers/vk_layer_table.cpp')
| -rw-r--r-- | layers/vk_layer_table.cpp | 175 |
1 files changed, 74 insertions, 101 deletions
diff --git a/layers/vk_layer_table.cpp b/layers/vk_layer_table.cpp index 57f2989d..3cee6ddb 100644 --- a/layers/vk_layer_table.cpp +++ b/layers/vk_layer_table.cpp @@ -38,170 +38,144 @@ static instance_table_map tableInstanceMap; #define DISPATCH_MAP_DEBUG 0 // Map lookup must be thread safe -VkLayerDispatchTable *device_dispatch_table(void *object) { +VkLayerDispatchTable *device_dispatch_table(void* object) +{ dispatch_key key = get_dispatch_key(object); - device_table_map::const_iterator it = tableMap.find((void *)key); + device_table_map::const_iterator it = tableMap.find((void *) key); assert(it != tableMap.end() && "Not able to find device dispatch entry"); return it->second; } -VkLayerInstanceDispatchTable *instance_dispatch_table(void *object) { +VkLayerInstanceDispatchTable *instance_dispatch_table(void* object) +{ dispatch_key key = get_dispatch_key(object); - instance_table_map::const_iterator it = tableInstanceMap.find((void *)key); + instance_table_map::const_iterator it = tableInstanceMap.find((void *) key); #if DISPATCH_MAP_DEBUG if (it != tableInstanceMap.end()) { - fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: " - "%p, table: %p\n", - &tableInstanceMap, object, key, it->second); + fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: %p, table: %p\n", &tableInstanceMap, object, key, it->second); } else { - fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: " - "%p, table: UNKNOWN\n", - &tableInstanceMap, object, key); + fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: %p, table: UNKNOWN\n", &tableInstanceMap, object, key); } #endif - assert(it != tableInstanceMap.end() && - "Not able to find instance dispatch entry"); + assert(it != tableInstanceMap.end() && "Not able to find instance dispatch entry"); return it->second; } -void destroy_dispatch_table(device_table_map &map, dispatch_key key) { - device_table_map::const_iterator it = map.find((void *)key); +void destroy_dispatch_table(device_table_map &map, dispatch_key key) +{ + device_table_map::const_iterator it = map.find((void *) key); #if DISPATCH_MAP_DEBUG if (it != map.end()) { - fprintf(stderr, - "destroy device dispatch_table: map: %p, key: %p, table: %p\n", - &map, key, it->second); + fprintf(stderr, "destroy device dispatch_table: map: %p, key: %p, table: %p\n", &map, key, it->second); } else { - fprintf( - stderr, - "destroy device dispatch table: map: %p, key: %p, table: UNKNOWN\n", - &map, key); + fprintf(stderr, "destroy device dispatch table: map: %p, key: %p, table: UNKNOWN\n", &map, key); assert(it != map.end()); } #endif map.erase(key); } -void destroy_dispatch_table(instance_table_map &map, dispatch_key key) { - instance_table_map::const_iterator it = map.find((void *)key); +void destroy_dispatch_table(instance_table_map &map, dispatch_key key) +{ + instance_table_map::const_iterator it = map.find((void *) key); #if DISPATCH_MAP_DEBUG if (it != map.end()) { - fprintf( - stderr, - "destroy instance dispatch_table: map: %p, key: %p, table: %p\n", - &map, key, it->second); + fprintf(stderr, "destroy instance dispatch_table: map: %p, key: %p, table: %p\n", &map, key, it->second); } else { - fprintf(stderr, "destroy instance dispatch table: map: %p, key: %p, " - "table: UNKNOWN\n", - &map, key); + fprintf(stderr, "destroy instance dispatch table: map: %p, key: %p, table: UNKNOWN\n", &map, key); assert(it != map.end()); } #endif map.erase(key); } -void destroy_device_dispatch_table(dispatch_key key) { +void destroy_device_dispatch_table(dispatch_key key) +{ destroy_dispatch_table(tableMap, key); } -void destroy_instance_dispatch_table(dispatch_key key) { +void destroy_instance_dispatch_table(dispatch_key key) +{ destroy_dispatch_table(tableInstanceMap, key); } -VkLayerDispatchTable *get_dispatch_table(device_table_map &map, void *object) { +VkLayerDispatchTable *get_dispatch_table(device_table_map &map, void* object) +{ dispatch_key key = get_dispatch_key(object); - device_table_map::const_iterator it = map.find((void *)key); + device_table_map::const_iterator it = map.find((void *) key); #if DISPATCH_MAP_DEBUG if (it != map.end()) { - fprintf( - stderr, - "device_dispatch_table: map: %p, object: %p, key: %p, table: %p\n", - &tableInstanceMap, object, key, it->second); + fprintf(stderr, "device_dispatch_table: map: %p, object: %p, key: %p, table: %p\n", &tableInstanceMap, object, key, it->second); } else { - fprintf(stderr, "device_dispatch_table: map: %p, object: %p, key: %p, " - "table: UNKNOWN\n", - &tableInstanceMap, object, key); + fprintf(stderr, "device_dispatch_table: map: %p, object: %p, key: %p, table: UNKNOWN\n", &tableInstanceMap, object, key); } #endif assert(it != map.end() && "Not able to find device dispatch entry"); return it->second; } -VkLayerInstanceDispatchTable *get_dispatch_table(instance_table_map &map, - void *object) { - // VkLayerInstanceDispatchTable *pDisp = *(VkLayerInstanceDispatchTable - // **) object; +VkLayerInstanceDispatchTable *get_dispatch_table(instance_table_map &map, void* object) +{ +// VkLayerInstanceDispatchTable *pDisp = *(VkLayerInstanceDispatchTable **) object; dispatch_key key = get_dispatch_key(object); - instance_table_map::const_iterator it = map.find((void *)key); + instance_table_map::const_iterator it = map.find((void *) key); #if DISPATCH_MAP_DEBUG if (it != map.end()) { - fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: " - "%p, table: %p\n", - &tableInstanceMap, object, key, it->second); + fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: %p, table: %p\n", &tableInstanceMap, object, key, it->second); } else { - fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: " - "%p, table: UNKNOWN\n", - &tableInstanceMap, object, key); + fprintf(stderr, "instance_dispatch_table: map: %p, object: %p, key: %p, table: UNKNOWN\n", &tableInstanceMap, object, key); } #endif assert(it != map.end() && "Not able to find instance dispatch entry"); return it->second; } -VkLayerInstanceCreateInfo * -get_chain_info(const VkInstanceCreateInfo *pCreateInfo, VkLayerFunction func) { - VkLayerInstanceCreateInfo *chain_info = - (VkLayerInstanceCreateInfo *)pCreateInfo->pNext; - while ( - chain_info && - !(chain_info->sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO && - chain_info->function == func)) { - chain_info = (VkLayerInstanceCreateInfo *)chain_info->pNext; +VkLayerInstanceCreateInfo *get_chain_info(const VkInstanceCreateInfo *pCreateInfo, VkLayerFunction func) +{ + VkLayerInstanceCreateInfo *chain_info = (VkLayerInstanceCreateInfo *) pCreateInfo->pNext; + while (chain_info && !(chain_info->sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO + && chain_info->function == func)) { + chain_info = (VkLayerInstanceCreateInfo *) chain_info->pNext; } assert(chain_info != NULL); return chain_info; } -VkLayerDeviceCreateInfo *get_chain_info(const VkDeviceCreateInfo *pCreateInfo, - VkLayerFunction func) { - VkLayerDeviceCreateInfo *chain_info = - (VkLayerDeviceCreateInfo *)pCreateInfo->pNext; - while (chain_info && - !(chain_info->sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO && - chain_info->function == func)) { - chain_info = (VkLayerDeviceCreateInfo *)chain_info->pNext; +VkLayerDeviceCreateInfo *get_chain_info(const VkDeviceCreateInfo *pCreateInfo, VkLayerFunction func) +{ + VkLayerDeviceCreateInfo *chain_info = (VkLayerDeviceCreateInfo *) pCreateInfo->pNext; + while (chain_info && !(chain_info->sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO + && chain_info->function == func)) { + chain_info = (VkLayerDeviceCreateInfo *) chain_info->pNext; } assert(chain_info != NULL); return chain_info; } -/* Various dispatchable objects will use the same underlying dispatch table if - * they +/* Various dispatchable objects will use the same underlying dispatch table if they * are created from that "parent" object. Thus use pointer to dispatch table * as the key to these table maps. * Instance -> PhysicalDevice * Device -> CommandBuffer or Queue - * If use the object themselves as key to map then implies Create entrypoints - * have to be intercepted + * If use the object themselves as key to map then implies Create entrypoints have to be intercepted * and a new key inserted into map */ -VkLayerInstanceDispatchTable * -initInstanceTable(VkInstance instance, const PFN_vkGetInstanceProcAddr gpa, - instance_table_map &map) { +VkLayerInstanceDispatchTable * initInstanceTable(VkInstance instance, const PFN_vkGetInstanceProcAddr gpa, instance_table_map &map) +{ VkLayerInstanceDispatchTable *pTable; dispatch_key key = get_dispatch_key(instance); - instance_table_map::const_iterator it = map.find((void *)key); + instance_table_map::const_iterator it = map.find((void *) key); - if (it == map.end()) { - pTable = new VkLayerInstanceDispatchTable; - map[(void *)key] = pTable; + if (it == map.end()) + { + pTable = new VkLayerInstanceDispatchTable; + map[(void *) key] = pTable; #if DISPATCH_MAP_DEBUG - fprintf(stderr, "New, Instance: map: %p, key: %p, table: %p\n", &map, - key, pTable); + fprintf(stderr, "New, Instance: map: %p, key: %p, table: %p\n", &map, key, pTable); #endif - } else { + } else + { #if DISPATCH_MAP_DEBUG - fprintf(stderr, "Instance: map: %p, key: %p, table: %p\n", &map, key, - it->second); + fprintf(stderr, "Instance: map: %p, key: %p, table: %p\n", &map, key, it->second); #endif return it->second; } @@ -211,29 +185,28 @@ initInstanceTable(VkInstance instance, const PFN_vkGetInstanceProcAddr gpa, return pTable; } -VkLayerInstanceDispatchTable * -initInstanceTable(VkInstance instance, const PFN_vkGetInstanceProcAddr gpa) { +VkLayerInstanceDispatchTable * initInstanceTable(VkInstance instance, const PFN_vkGetInstanceProcAddr gpa) +{ return initInstanceTable(instance, gpa, tableInstanceMap); } -VkLayerDispatchTable *initDeviceTable(VkDevice device, - const PFN_vkGetDeviceProcAddr gpa, - device_table_map &map) { +VkLayerDispatchTable * initDeviceTable(VkDevice device, const PFN_vkGetDeviceProcAddr gpa, device_table_map &map) +{ VkLayerDispatchTable *pTable; dispatch_key key = get_dispatch_key(device); - device_table_map::const_iterator it = map.find((void *)key); + device_table_map::const_iterator it = map.find((void *) key); - if (it == map.end()) { - pTable = new VkLayerDispatchTable; - map[(void *)key] = pTable; + if (it == map.end()) + { + pTable = new VkLayerDispatchTable; + map[(void *) key] = pTable; #if DISPATCH_MAP_DEBUG - fprintf(stderr, "New, Device: map: %p, key: %p, table: %p\n", &map, key, - pTable); + fprintf(stderr, "New, Device: map: %p, key: %p, table: %p\n", &map, key, pTable); #endif - } else { + } else + { #if DISPATCH_MAP_DEBUG - fprintf(stderr, "Device: map: %p, key: %p, table: %p\n", &map, key, - it->second); + fprintf(stderr, "Device: map: %p, key: %p, table: %p\n", &map, key, it->second); #endif return it->second; } @@ -243,7 +216,7 @@ VkLayerDispatchTable *initDeviceTable(VkDevice device, return pTable; } -VkLayerDispatchTable *initDeviceTable(VkDevice device, - const PFN_vkGetDeviceProcAddr gpa) { +VkLayerDispatchTable * initDeviceTable(VkDevice device, const PFN_vkGetDeviceProcAddr gpa) +{ return initDeviceTable(device, gpa, tableMap); } |
