为什么验证层不说我忘记销毁设备或表面?
Why validation layer doesn't say me I forgot to destroy a device or a surface?
我向我的实例添加了 VK_LAYER_LUNARG_standard_validation
个验证层。接下来我创建了一个调试回调和其他 vulkan 对象。对于测试用例,我要清除的唯一对象是实例(因为验证层应该报告实例销毁)。从所有对象中,我的层仅报告 VkDebugReportCallbackEXT
:
validation layer: Debug Report callbacks not removed before
DestroyInstance
为什么它没有提到 VkSurfaceKHR
和 VkDevice
(它们肯定是创建的)。
其中一些 was fixed 在头部,但尚未作为 SDK 发布。
另一件事是 vkDestroyInstance
相关消息只能通过 vkCreateInstance
的 pNext
提供的临时调试报告回调来报告。原因是所有子对象都必须在 vkDestroyInstance
之前销毁,包括您的调试回调,因此它在 vkDestroyInstance
期间不可用。
因此,也将您的 VkDebugReportCallbackCreateInfoEXT
链接到 vkCreateInstance
的 pNext
链。
我向我的实例添加了 VK_LAYER_LUNARG_standard_validation
个验证层。接下来我创建了一个调试回调和其他 vulkan 对象。对于测试用例,我要清除的唯一对象是实例(因为验证层应该报告实例销毁)。从所有对象中,我的层仅报告 VkDebugReportCallbackEXT
:
validation layer: Debug Report callbacks not removed before DestroyInstance
为什么它没有提到 VkSurfaceKHR
和 VkDevice
(它们肯定是创建的)。
其中一些 was fixed 在头部,但尚未作为 SDK 发布。
另一件事是 vkDestroyInstance
相关消息只能通过 vkCreateInstance
的 pNext
提供的临时调试报告回调来报告。原因是所有子对象都必须在 vkDestroyInstance
之前销毁,包括您的调试回调,因此它在 vkDestroyInstance
期间不可用。
因此,也将您的 VkDebugReportCallbackCreateInfoEXT
链接到 vkCreateInstance
的 pNext
链。