使用验证层打印到stdout的错误,但没有回调

ple*_*ron 3 vulkan

我已经按照本教程,在设置验证层时,作者说我们必须设置调试回调,以便可以在stdout中打印日志.

我没有设置它们,但应用程序正在我的终端中打印各种错误消息:Swapchain(ERROR): object 0x1cdd2d0 type: 1 location: 292 msgCode: 3: VkDestroyInstance() called before all of its associated VkSurfaceKHRs were destroyed例如,省略调用时vkDestroySurfaceKHR.

我正在使用VK_LAYER_LUNARG_standard_validation,没有特别的扩展(仅限VK_KHR_surfaceVK_KHR_xcb_surface).

这是预期的行为吗?

Kar*_*ltz 5

验证层的默认日志记录行为在6月1日左右被更改,因为人们希望消息转到stdout而不必提供回调或将vk_layer_settings.txt放在应用程序的目录中.该教程网站可能已在该领域过时.

如果这是不需要的行为,更改它的最简单方法是获取vk_layer_settings.txt的副本(在SDK中附带)并编辑它以将行为更改为您想要的行为,然后将其放在当前目录中申请开始.

作为替代方案,您还可以编写调试回调代码.

有关详细信息,请参阅LunarXchange网站上的图层文档.