最近,我更新了系统,并尝试重新编译我的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;
}
“加载程序”是vk :: DispatchLoaderDynamic
看来麻烦不仅仅在于Vulkan-Hpp,还有C Vulkan。
是否进行了一些测试,并且回调似乎正常工作。我认为这里的问题可能是出于性能原因删除了一些旧的INFO消息-请参阅Vulkan-ValidationLayers提交18BF5C637
和523D9C775
。如果INFORMATION_BIT
在1.1.108之前的SDK版本中启用了消息,则会看到大量涌入的消息。如果预期的验证错误没有使您的回调出错,请在VVL存储库中创建github问题,我们将立即解决。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句