设置 ppEnabledExtensionNames 会导致 Vulkan 崩溃
Setting ppEnabledExtensionNames causes Vulkan crash
我正在尝试通过 vulkan-tutorial.com 学习 Vulkan,但我卡在了 Validation Layer 教程中。出于某种原因,将 ppEnabledExtensionNames
设置为任何 std::vector
的 .data()
会使程序崩溃。
有问题的东西在debug.cpp
这是一个 link:https://pastebin.com/j7NTQsH0
如果有人可以请查看代码并告诉我哪里出了问题,将不胜感激。
你的问题是validationLayers
的范围。它是 initDebugging
函数的局部变量,而您在 initInstance
外部使用该函数中更新的 createInfo
(指向该局部向量),此时 validationLayers
向量超出范围,createInfo->ppEnabledLayerNames
指向的所有值也超出范围。
要解决此问题,您需要复制或声明 validationLayers
中的值,以便它们在您调用 vkCreateInstance
.
时仍然有效
我正在尝试通过 vulkan-tutorial.com 学习 Vulkan,但我卡在了 Validation Layer 教程中。出于某种原因,将 ppEnabledExtensionNames
设置为任何 std::vector
的 .data()
会使程序崩溃。
有问题的东西在debug.cpp
这是一个 link:https://pastebin.com/j7NTQsH0
如果有人可以请查看代码并告诉我哪里出了问题,将不胜感激。
你的问题是validationLayers
的范围。它是 initDebugging
函数的局部变量,而您在 initInstance
外部使用该函数中更新的 createInfo
(指向该局部向量),此时 validationLayers
向量超出范围,createInfo->ppEnabledLayerNames
指向的所有值也超出范围。
要解决此问题,您需要复制或声明 validationLayers
中的值,以便它们在您调用 vkCreateInstance
.