loader: Destroy debug callbacks/messengers properly
When creating debug callbacks or messengers, each of them is added to a linked list from the terminator, with the handle provided by the ICD. When enabling some validation layers, this handle is renamed as part of the chain and the application gets a different one. In the removal process, the application usually receives one of these function pointers using vkGetInstanceProcAddr: - debug_utils_DestroyDebugReportCallbackEXT - debug_utils_DestroyDebugUtilsMessengerEXT Those trigger the chain calls but then try to remove the callback or messenger from the linked list using the application-level handle, which is not found because it doesn't match the one from the ICD. The linked list should be accessed from the destruction terminators, when the handle has already been unwrapped by the layers.
Loading
Please register or sign in to comment