设置 ppEnabledExtensionNames 会导致 Vulkan 崩溃
Setting ppEnabledExtensionNames causes Vulkan crash
我正在尝试通过 vulkan-tutorial.com 学习 Vulkan,但我被困在验证层教程上。出于某种原因,将ppEnabledExtensionNames
设置为任何std::vector
的.data()
会使程序崩溃。
有问题的东西在debug.cpp
这是一个链接:https://pastebin.com/j7NTQsH0
如果有人可以查看代码并告诉我出了什么问题,将不胜感激。
您的问题是validationLayers
的范围。它是initDebugging
函数的本地函数,而您在initInstance
中使用在该函数之外更新的createInfo
(指向该本地向量(,此时validationLayers
向量超出了范围,并且createInfo->ppEnabledLayerNames
指向的所有值也超出了范围。
要解决此问题,您需要从validationLayers
复制或声明值,以便在调用vkCreateInstance
时它们仍然有效。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 使用Vulkan hpp vk::enumerateInstanceVersion()会导致segfault
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 为什么要增加导致崩溃的指针
- 在虚幻引擎中删除NXOpen对象时崩溃
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- 设置 ppEnabledExtensionNames 会导致 Vulkan 崩溃