From f0c8343cfaa346d8764cfd59bd7b48650e06ba56 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Mon, 4 Jan 2016 15:48:11 -0700 Subject: layers: Enable fine-grained filtering of generated layer log messages Layers object_tracker, threading, generic, basic, etc. --- layers/object_tracker.h | 54 ++++++++++++++++++++++++------------------------- vk-layer-generate.py | 34 +++++++++++++++---------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/layers/object_tracker.h b/layers/object_tracker.h index 4783a474..54f42351 100644 --- a/layers/object_tracker.h +++ b/layers/object_tracker.h @@ -310,7 +310,7 @@ addQueueInfo( g_pQueueInfo = pQueueInfo; } else { - log_msg(mdd(queue), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, reinterpret_cast(queue), 0, OBJTRACK_INTERNAL_ERROR, "OBJTRACK", + log_msg(mdd(queue), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, reinterpret_cast(queue), __LINE__, OBJTRACK_INTERNAL_ERROR, "OBJTRACK", "ERROR: VK_ERROR_OUT_OF_HOST_MEMORY -- could not allocate memory for Queue Information"); } } @@ -359,10 +359,10 @@ validateQueueFlags( } if (pQueueInfo != NULL) { if ((queueInfo != NULL) && (queueInfo[pQueueInfo->queueNodeIndex].queueFlags & VK_QUEUE_SPARSE_BINDING_BIT) == 0) { - log_msg(mdd(queue), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, reinterpret_cast(queue), 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", + log_msg(mdd(queue), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, reinterpret_cast(queue), __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", "Attempting %s on a non-memory-management capable queue -- VK_QUEUE_SPARSE_BINDING_BIT not set", function); } else { - log_msg(mdd(queue), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, reinterpret_cast(queue), 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", + log_msg(mdd(queue), VK_DEBUG_REPORT_ERROR_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, reinterpret_cast(queue), __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", "Attempting %s on a possibly non-memory-management capable queue -- VK_QUEUE_SPARSE_BINDING_BIT not known", function); } } @@ -386,7 +386,7 @@ validate_status( OBJTRACK_NODE* pNode = objMap[vkObj]; if ((pNode->status & status_mask) != status_flag) { char str[1024]; - log_msg(mdd(dispatchable_object), msg_flags, pNode->objType, vkObj, 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", + log_msg(mdd(dispatchable_object), msg_flags, pNode->objType, vkObj, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", "OBJECT VALIDATION WARNING: %s object 0x%" PRIxLEAST64 ": %s", string_VkObjectType(objType), reinterpret_cast(vkObj), fail_msg); return VK_FALSE; @@ -395,7 +395,7 @@ validate_status( } else { // If we do not find it print an error - log_msg(mdd(dispatchable_object), msg_flags, (VkObjectType) 0, vkObj, 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", + log_msg(mdd(dispatchable_object), msg_flags, (VkObjectType) 0, vkObj, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK", "Unable to obtain status for non-existent object 0x%" PRIxLEAST64 " of %s type", reinterpret_cast(vkObj), string_VkObjectType(objType)); return VK_FALSE; @@ -487,7 +487,7 @@ static VkBool32 validate_image(VkQueue dispatchable_object, VkImage object) { if ((VkImageMap.find(reinterpret_cast(object)) == VkImageMap.end()) && (swapchainImageMap.find(reinterpret_cast(object)) == swapchainImageMap.end())) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkImage Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -497,7 +497,7 @@ static VkBool32 validate_image(VkCommandBuffer dispatchable_object, VkImage obje { if ((VkImageMap.find(reinterpret_cast(object)) == VkImageMap.end()) && (swapchainImageMap.find(reinterpret_cast(object)) == swapchainImageMap.end())) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkImage Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -506,7 +506,7 @@ static VkBool32 validate_image(VkCommandBuffer dispatchable_object, VkImage obje static VkBool32 validate_command_buffer(VkQueue dispatchable_object, VkCommandBuffer object) { if (VkCommandBufferMap.find(reinterpret_cast(object)) == VkCommandBufferMap.end()) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, reinterpret_cast(object), 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, reinterpret_cast(object), __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkCommandBuffer Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -515,7 +515,7 @@ static VkBool32 validate_command_buffer(VkQueue dispatchable_object, VkCommandBu static VkBool32 validate_descriptor_set(VkCommandBuffer dispatchable_object, VkDescriptorSet object) { if (VkDescriptorSetMap.find(reinterpret_cast(object)) == VkDescriptorSetMap.end()) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkDescriptorSet Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -524,7 +524,7 @@ static VkBool32 validate_descriptor_set(VkCommandBuffer dispatchable_object, VkD static VkBool32 validate_buffer(VkQueue dispatchable_object, VkBuffer object) { if (VkBufferMap.find(reinterpret_cast(object)) != VkBufferMap.end()) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkBuffer Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -540,7 +540,7 @@ static VkBool32 set_status(VkQueue dispatchable_object, VkFence object, VkDebugR } else { // If we do not find it print an error - skipCall |= log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_NONE, "OBJTRACK", + skipCall |= log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_NONE, "OBJTRACK", "Unable to set status for non-existent object 0x%" PRIxLEAST64 " of %s type", reinterpret_cast(object), string_VkDebugReportObjectTypeEXT(objType)); } @@ -551,7 +551,7 @@ static VkBool32 set_status(VkQueue dispatchable_object, VkFence object, VkDebugR static VkBool32 validate_semaphore(VkQueue dispatchable_object, VkSemaphore object) { if (VkSemaphoreMap.find(reinterpret_cast(object)) == VkSemaphoreMap.end()) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkSemaphore Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -560,7 +560,7 @@ static VkBool32 validate_semaphore(VkQueue dispatchable_object, VkSemaphore obje static VkBool32 validate_command_buffer(VkDevice dispatchable_object, VkCommandBuffer object) { if (VkCommandBufferMap.find(reinterpret_cast(object)) == VkCommandBufferMap.end()) { - return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, reinterpret_cast(object), 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK", + return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, reinterpret_cast(object), __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK", "Invalid VkCommandBuffer Object %" PRIu64, reinterpret_cast(object)); } return VK_FALSE; @@ -568,7 +568,7 @@ static VkBool32 validate_command_buffer(VkDevice dispatchable_object, VkCommandB static void create_physical_device(VkInstance dispatchable_object, VkPhysicalDevice vkObj, VkDebugReportObjectTypeEXT objType) { - log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, string_VkDebugReportObjectTypeEXT(objType), reinterpret_cast(vkObj)); @@ -594,7 +594,7 @@ static void destroy_surface_khr(VkInstance instance, VkSurfaceKHR surface) static void alloc_command_buffer(VkDevice device, VkCommandPool commandPool, VkCommandBuffer vkObj, VkDebugReportObjectTypeEXT objType) { - log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, string_VkDebugReportObjectTypeEXT(objType), reinterpret_cast(vkObj)); @@ -616,7 +616,7 @@ static void free_command_buffer(VkDevice device, VkCommandPool commandPool, VkCo OBJTRACK_NODE* pNode = VkCommandBufferMap[(uint64_t)commandBuffer]; if (pNode->parentObj != reinterpret_cast(commandPool)) { - log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, object_handle, 0, OBJTRACK_COMMAND_POOL_MISMATCH, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, object_handle, __LINE__, OBJTRACK_COMMAND_POOL_MISMATCH, "OBJTRACK", "FreeCommandBuffers is attempting to free Command Buffer 0x%" PRIxLEAST64 " belonging to Command Pool 0x%" PRIxLEAST64 " from pool 0x%" PRIxLEAST64 ").", reinterpret_cast(commandBuffer), pNode->parentObj, reinterpret_cast(commandPool)); } else { @@ -626,7 +626,7 @@ static void free_command_buffer(VkDevice device, VkCommandPool commandPool, VkCo numTotalObjs--; assert(numObjs[objIndex] > 0); numObjs[objIndex]--; - log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, object_handle, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ_STAT Destroy %s obj 0x%" PRIxLEAST64 " (%" PRIu64 " total objs remain & %" PRIu64 " %s objs).", string_VkDebugReportObjectTypeEXT(pNode->objType), reinterpret_cast(commandBuffer), numTotalObjs, numObjs[objIndex], string_VkDebugReportObjectTypeEXT(pNode->objType)); @@ -634,7 +634,7 @@ static void free_command_buffer(VkDevice device, VkCommandPool commandPool, VkCo VkCommandBufferMap.erase(object_handle); } } else { - log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, object_handle, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK", "Unable to remove obj 0x%" PRIxLEAST64 ". Was it created? Has it already been destroyed?", object_handle); } @@ -642,7 +642,7 @@ static void free_command_buffer(VkDevice device, VkCommandPool commandPool, VkCo static void alloc_descriptor_set(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorSet vkObj, VkDebugReportObjectTypeEXT objType) { - log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, string_VkDebugReportObjectTypeEXT(objType), reinterpret_cast(vkObj)); @@ -664,7 +664,7 @@ static void free_descriptor_set(VkDevice device, VkDescriptorPool descriptorPool OBJTRACK_NODE* pNode = VkDescriptorSetMap[(uint64_t)descriptorSet]; if (pNode->parentObj != reinterpret_cast(descriptorPool)) { - log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, object_handle, 0, OBJTRACK_DESCRIPTOR_POOL_MISMATCH, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, object_handle, __LINE__, OBJTRACK_DESCRIPTOR_POOL_MISMATCH, "OBJTRACK", "FreeDescriptorSets is attempting to free descriptorSet 0x%" PRIxLEAST64 " belonging to Descriptor Pool 0x%" PRIxLEAST64 " from pool 0x%" PRIxLEAST64 ").", reinterpret_cast(descriptorSet), pNode->parentObj, reinterpret_cast(descriptorPool)); } else { @@ -673,7 +673,7 @@ static void free_descriptor_set(VkDevice device, VkDescriptorPool descriptorPool numTotalObjs--; assert(numObjs[objIndex] > 0); numObjs[objIndex]--; - log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, object_handle, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ_STAT Destroy %s obj 0x%" PRIxLEAST64 " (%" PRIu64 " total objs remain & %" PRIu64 " %s objs).", string_VkDebugReportObjectTypeEXT(pNode->objType), reinterpret_cast(descriptorSet), numTotalObjs, numObjs[objIndex], string_VkDebugReportObjectTypeEXT(pNode->objType)); @@ -681,7 +681,7 @@ static void free_descriptor_set(VkDevice device, VkDescriptorPool descriptorPool VkDescriptorSetMap.erase(object_handle); } } else { - log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, object_handle, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK", "Unable to remove obj 0x%" PRIxLEAST64 ". Was it created? Has it already been destroyed?", object_handle); } @@ -689,7 +689,7 @@ static void free_descriptor_set(VkDevice device, VkDescriptorPool descriptorPool static void create_swapchain_khr(VkDevice dispatchable_object, VkSwapchainKHR vkObj, VkDebugReportObjectTypeEXT objType) { - log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, (uint64_t) vkObj, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, (uint64_t) vkObj, __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, string_VkDebugReportObjectTypeEXT(objType), reinterpret_cast(vkObj)); @@ -704,7 +704,7 @@ static void create_swapchain_khr(VkDevice dispatchable_object, VkSwapchainKHR vk } static void create_queue(VkDevice dispatchable_object, VkQueue vkObj, VkDebugReportObjectTypeEXT objType) { - log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, string_VkDebugReportObjectTypeEXT(objType), reinterpret_cast(vkObj)); @@ -719,7 +719,7 @@ static void create_queue(VkDevice dispatchable_object, VkQueue vkObj, VkDebugRep } static void create_swapchain_image_obj(VkDevice dispatchable_object, VkImage vkObj, VkSwapchainKHR swapchain) { - log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, (uint64_t) vkObj, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, (uint64_t) vkObj, __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, "SwapchainImage", reinterpret_cast(vkObj)); @@ -740,14 +740,14 @@ static void destroy_swapchain(VkDevice dispatchable_object, VkSwapchainKHR objec numTotalObjs--; assert(numObjs[objIndex] > 0); numObjs[objIndex]--; - log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, (uint64_t) object, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, (uint64_t) object, __LINE__, OBJTRACK_NONE, "OBJTRACK", "OBJ_STAT Destroy %s obj 0x%" PRIxLEAST64 " (%" PRIu64 " total objs remain & %" PRIu64 " %s objs).", string_VkDebugReportObjectTypeEXT(pNode->objType), (uint64_t) object, numTotalObjs, numObjs[objIndex], string_VkDebugReportObjectTypeEXT(pNode->objType)); delete pNode; VkSwapchainKHRMap.erase(reinterpret_cast(object)); } else { - log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, 0, OBJTRACK_NONE, "OBJTRACK", + log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT) 0, (uint64_t) object, __LINE__, OBJTRACK_NONE, "OBJTRACK", "Unable to remove obj 0x%" PRIxLEAST64 ". Was it created? Has it already been destroyed?", reinterpret_cast(object)); } diff --git a/vk-layer-generate.py b/vk-layer-generate.py index fc498851..69edb1ac 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -783,14 +783,14 @@ class GenericLayerSubcommand(Subcommand): ' layer_data *my_data = get_my_data_ptr(get_dispatch_key(physicalDevice), layer_data_map);\n' ' sprintf(str, "At start of Generic layered %s\\n");\n' ' log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,' - ' (uint64_t)physicalDevice, 0, 0, (char *) "generic", "%%s", (char *) str);\n' + ' (uint64_t)physicalDevice, __LINE__, 0, (char *) "generic", "%%s", (char *) str);\n' ' %sdevice_dispatch_table(*pDevice)->%s;\n' ' if (result == VK_SUCCESS) {\n' ' my_data->report_data = layer_debug_report_create_device(my_data->report_data, *pDevice);\n' ' createDeviceRegisterExtensions(pCreateInfo, *pDevice);\n' ' }\n' ' sprintf(str, "Completed generic layered %s\\n");\n' - ' log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, (uint64_t)physicalDevice, 0, 0, (char *) "generic", "%%s", (char *) str);\n' + ' log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, (uint64_t)physicalDevice, __LINE__, 0, (char *) "generic", "%%s", (char *) str);\n' ' %s' '}' % (qual, decl, proto.name, ret_val, proto.c_call(), proto.name, stmt)) elif proto.name == "DestroyDevice": @@ -837,7 +837,7 @@ class GenericLayerSubcommand(Subcommand): ' pCreateInfo->ppEnabledExtensionNames);\n' ' init_generic(my_data, pAllocator);\n' ' sprintf(str, "Completed generic layered %s\\n");\n' - ' log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, (uint64_t)*pInstance, 0, 0, (char *) "generic", "%%s", (char *) str);\n' + ' log_msg(my_data->report_data, VK_DEBUG_REPORT_INFO_BIT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, (uint64_t)*pInstance, __LINE__, 0, (char *) "generic", "%%s", (char *) str);\n' ' }\n' ' return result;\n' '}\n' % (qual, decl, ret_val, proto.c_call(), proto.name)) @@ -1360,7 +1360,7 @@ class ObjectTrackerSubcommand(Subcommand): else: procs_txt.append('static void create_%s(VkDevice dispatchable_object, %s vkObj, VkDebugReportObjectTypeEXT objType)' % (name, o)) procs_txt.append('{') - procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), 0, OBJTRACK_NONE, "OBJTRACK",') + procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, objType, reinterpret_cast(vkObj), __LINE__, OBJTRACK_NONE, "OBJTRACK",') procs_txt.append(' "OBJ[%llu] : CREATE %s object 0x%" PRIxLEAST64 , object_track_index++, string_VkDebugReportObjectTypeEXT(objType),') procs_txt.append(' reinterpret_cast(vkObj));') procs_txt.append('') @@ -1388,7 +1388,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append('{') if o in vulkan.object_dispatch_list: procs_txt.append(' if (%sMap.find((uint64_t)object) == %sMap.end()) {' % (o, o)) - procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, reinterpret_cast(object), 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') + procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, reinterpret_cast(object), __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') procs_txt.append(' "Invalid %s Object 0x%%" PRIx64 ,reinterpret_cast(object));' % o) else: if o == "VkImage": @@ -1397,7 +1397,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' (swapchainImageMap.find((uint64_t)object) == swapchainImageMap.end())) {') else: procs_txt.append(' if (%sMap.find((uint64_t)object) == %sMap.end()) {' % (o, o)) - procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, (uint64_t) object, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') + procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, (uint64_t) object, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') procs_txt.append(' "Invalid %s Object 0x%%" PRIx64, reinterpret_cast(object));' % o) procs_txt.append(' }') procs_txt.append(' return VK_FALSE;') @@ -1418,14 +1418,14 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' numTotalObjs--;') procs_txt.append(' assert(numObjs[objIndex] > 0);') procs_txt.append(' numObjs[objIndex]--;') - procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, object_handle, 0, OBJTRACK_NONE, "OBJTRACK",') + procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_INFO_BIT_EXT, pNode->objType, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK",') procs_txt.append(' "OBJ_STAT Destroy %s obj 0x%" PRIxLEAST64 " (%" PRIu64 " total objs remain & %" PRIu64 " %s objs).",') procs_txt.append(' string_VkDebugReportObjectTypeEXT(pNode->objType), reinterpret_cast(object), numTotalObjs, numObjs[objIndex],') procs_txt.append(' string_VkDebugReportObjectTypeEXT(pNode->objType));') procs_txt.append(' delete pNode;') procs_txt.append(' %sMap.erase(object_handle);' % (o)) procs_txt.append(' } else {') - procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, 0, OBJTRACK_NONE, "OBJTRACK",') + procs_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK",') procs_txt.append(' "Unable to remove obj 0x%" PRIxLEAST64 ". Was it created? Has it already been destroyed?",') procs_txt.append(' object_handle);') procs_txt.append(' }') @@ -1445,7 +1445,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' }') procs_txt.append(' else {') procs_txt.append(' // If we do not find it print an error') - procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, 0, OBJTRACK_NONE, "OBJTRACK",') + procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, __LINE__, OBJTRACK_NONE, "OBJTRACK",') procs_txt.append(' "Unable to set status for non-existent object 0x%" PRIxLEAST64 " of %s type",') procs_txt.append(' object_handle, string_VkDebugReportObjectTypeEXT(objType));') procs_txt.append(' }') @@ -1470,7 +1470,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' if (%sMap.find(object_handle) != %sMap.end()) {' % (o, o)) procs_txt.append(' OBJTRACK_NODE* pNode = %sMap[object_handle];' % (o)) procs_txt.append(' if ((pNode->status & status_mask) != status_flag) {') - procs_txt.append(' log_msg(mdd(dispatchable_object), msg_flags, pNode->objType, object_handle, 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') + procs_txt.append(' log_msg(mdd(dispatchable_object), msg_flags, pNode->objType, object_handle, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') procs_txt.append(' "OBJECT VALIDATION WARNING: %s object 0x%" PRIxLEAST64 ": %s", string_VkDebugReportObjectTypeEXT(objType),') procs_txt.append(' object_handle, fail_msg);') procs_txt.append(' return VK_FALSE;') @@ -1479,7 +1479,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' }') procs_txt.append(' else {') procs_txt.append(' // If we do not find it print an error') - procs_txt.append(' log_msg(mdd(dispatchable_object), msg_flags, (VkDebugReportObjectTypeEXT) 0, object_handle, 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') + procs_txt.append(' log_msg(mdd(dispatchable_object), msg_flags, (VkDebugReportObjectTypeEXT) 0, object_handle, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') procs_txt.append(' "Unable to obtain status for non-existent object 0x%" PRIxLEAST64 " of %s type",') procs_txt.append(' object_handle, string_VkDebugReportObjectTypeEXT(objType));') procs_txt.append(' return VK_FALSE;') @@ -1499,7 +1499,7 @@ class ObjectTrackerSubcommand(Subcommand): procs_txt.append(' }') procs_txt.append(' else {') procs_txt.append(' // If we do not find it print an error') - procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, objType, object_handle, 0, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') + procs_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, objType, object_handle, __LINE__, OBJTRACK_UNKNOWN_OBJECT, "OBJTRACK",') procs_txt.append(' "Unable to reset status for non-existent object 0x%" PRIxLEAST64 " of %s type",') procs_txt.append(' object_handle, string_VkDebugReportObjectTypeEXT(objType));') procs_txt.append(' }') @@ -1525,7 +1525,7 @@ class ObjectTrackerSubcommand(Subcommand): continue gedi_txt.append(' for (auto it = %sMap.begin(); it != %sMap.end(); ++it) {' % (o, o)) gedi_txt.append(' OBJTRACK_NODE* pNode = it->second;') - gedi_txt.append(' log_msg(mid(instance), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, pNode->vkObj, 0, OBJTRACK_OBJECT_LEAK, "OBJTRACK",') + gedi_txt.append(' log_msg(mid(instance), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, pNode->vkObj, __LINE__, OBJTRACK_OBJECT_LEAK, "OBJTRACK",') gedi_txt.append(' "OBJ ERROR : %s object 0x%" PRIxLEAST64 " has not been destroyed.", string_VkDebugReportObjectTypeEXT(pNode->objType),') gedi_txt.append(' pNode->vkObj);') gedi_txt.append(' }') @@ -1575,7 +1575,7 @@ class ObjectTrackerSubcommand(Subcommand): continue gedd_txt.append(' for (auto it = %sMap.begin(); it != %sMap.end(); ++it) {' % (o, o)) gedd_txt.append(' OBJTRACK_NODE* pNode = it->second;') - gedd_txt.append(' log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, pNode->vkObj, 0, OBJTRACK_OBJECT_LEAK, "OBJTRACK",') + gedd_txt.append(' log_msg(mdd(device), VK_DEBUG_REPORT_ERROR_BIT_EXT, pNode->objType, pNode->vkObj, __LINE__, OBJTRACK_OBJECT_LEAK, "OBJTRACK",') gedd_txt.append(' "OBJ ERROR : %s object 0x%" PRIxLEAST64 " has not been destroyed.", string_VkDebugReportObjectTypeEXT(pNode->objType),') gedd_txt.append(' pNode->vkObj);') gedd_txt.append(' }') @@ -1607,7 +1607,7 @@ class ObjectTrackerSubcommand(Subcommand): cbv_txt.append('{') cbv_txt.append(' uint64_t object_handle = reinterpret_cast(object);') cbv_txt.append(' if (%sMap.find(object_handle) == %sMap.end()) {' % (o, o)) - cbv_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, 0, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') + cbv_txt.append(' return log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, (VkDebugReportObjectTypeEXT ) 0, object_handle, __LINE__, OBJTRACK_INVALID_OBJECT, "OBJTRACK",') cbv_txt.append(' "Invalid %s Object 0x%%" PRIx64, object_handle);' % (o)) cbv_txt.append(' }') cbv_txt.append(' return VK_FALSE;') @@ -1939,7 +1939,7 @@ class ThreadingSubcommand(Subcommand): header_txt.append(' } else {') header_txt.append(' if (%sObjectsInUse[%s] != tid) {' % (ty, key)) header_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, %s, %s,' % (obj_type, msg_object)) - header_txt.append(' /*location*/ 0, THREADING_CHECKER_MULTIPLE_THREADS, "THREADING",') + header_txt.append(' __LINE__, THREADING_CHECKER_MULTIPLE_THREADS, "THREADING",') header_txt.append(' "THREADING ERROR : object of type %s is simultaneously used in thread %%ld and thread %%ld",' % (ty)) header_txt.append(' %sObjectsInUse[%s], tid);' % (ty, key)) header_txt.append(' // Wait for thread-safe access to object') @@ -1949,7 +1949,7 @@ class ThreadingSubcommand(Subcommand): header_txt.append(' %sObjectsInUse[%s] = tid;' % (ty, key)) header_txt.append(' } else {') header_txt.append(' log_msg(mdd(dispatchable_object), VK_DEBUG_REPORT_ERROR_BIT_EXT, %s, %s,' % (obj_type, msg_object)) - header_txt.append(' /*location*/ 0, THREADING_CHECKER_MULTIPLE_THREADS, "THREADING",') + header_txt.append(' __LINE__, THREADING_CHECKER_MULTIPLE_THREADS, "THREADING",') header_txt.append(' "THREADING ERROR : object of type %s is recursively used in thread %%ld",' % (ty)) header_txt.append(' tid);') header_txt.append(' }') -- cgit v1.2.3