Why validation layer doesn't say me I forgot t

2019-07-20 04:57发布

问题:

I added VK_LAYER_LUNARG_standard_validation validation layers to my instance. Next I created a debug callback and other vulkan objects. For the test case the only object I'm clearing is the instance (because validation layers should report on instance destruction). And from all of the objects I have the layer reports only about VkDebugReportCallbackEXT:

validation layer: Debug Report callbacks not removed before DestroyInstance

Why it doesn't say me about VkSurfaceKHR and VkDevice (they are created for sure).

回答1:

Some of it was fixed in head, but not yet released as SDK.

Other thing is that vkDestroyInstance related messages can only be reported through temporary debug report callback provided through pNext of vkCreateInstance. The reason is all the child objects must be destroyed before vkDestroyInstance, including your debug callback, so it is not usable during vkDestroyInstance.

So, also chain your VkDebugReportCallbackCreateInfoEXT to the pNext chain of vkCreateInstance.



标签: vulkan