【发布时间】:2019-06-15 13:59:14
【问题描述】:
最近我更新了我的系统并尝试重新编译我的 Vulkan 应用程序(它使用 Vulkan cpp 绑定)并且几乎没有从 vk::DebugUtilsMessengerEXT 得到任何输出(字符串“Added messenger”除外)。我将它设置为 std::cout 每种回调,它打印了很多信息字符串(更新之前)。有谁知道,如何恢复调试输出?
这是我的调试信使代码:
// ...
vk::DebugUtilsMessengerCreateInfoEXT messengerInfo;
messengerInfo.setMessageSeverity(
vk::DebugUtilsMessageSeverityFlagBitsEXT::eError |
vk::DebugUtilsMessageSeverityFlagBitsEXT::eWarning |
vk::DebugUtilsMessageSeverityFlagBitsEXT::eInfo |
vk::DebugUtilsMessageSeverityFlagBitsEXT::eVerbose);
messengerInfo.setMessageType(
vk::DebugUtilsMessageTypeFlagBitsEXT::eGeneral |
vk::DebugUtilsMessageTypeFlagBitsEXT::eValidation |
vk::DebugUtilsMessageTypeFlagBitsEXT::ePerformance);
messengerInfo.setPfnUserCallback(callback);
messengerInfo.setPUserData(nullptr);
if(instance.createDebugUtilsMessengerEXT(&messengerInfo, nullptr, &debugMessenger, loader) != vk::Result::eSuccess) throw std::runtime_error("Failed to create debug messenger!\n");
}
VKAPI_ATTR VkBool32 VKAPI_CALL System::callback(VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData)
{
std::cout << pCallbackData->pMessage << '\n';
return false;
}
"loader" 是 vk::DispatchLoaderDynamic
似乎问题不仅在于 Vulkan-Hpp,还在于 C Vulkan。
【问题讨论】:
-
是什么让您认为C接口也存在问题?另外,您是否检查过 vkEnumerateInstanceExtensions 列出了 VK_EXT_debug_utils 扩展?您在创建实例时是否启用了该扩展?
标签: vulkan