设置 ppEnabledExtensionNames 会导致 Vulkan 崩溃

Setting ppEnabledExtensionNames causes Vulkan crash

本文关键字:Vulkan 崩溃 ppEnabledExtensionNames 设置      更新时间:2023-10-16

我正在尝试通过 vulkan-tutorial.com 学习 Vulkan,但我被困在验证层教程上。出于某种原因,将ppEnabledExtensionNames设置为任何std::vector.data()会使程序崩溃。

有问题的东西在debug.cpp

这是一个链接:https://pastebin.com/j7NTQsH0

如果有人可以查看代码并告诉我出了什么问题,将不胜感激。

您的问题是validationLayers的范围。它是initDebugging函数的本地函数,而您在initInstance中使用在该函数之外更新的createInfo(指向该本地向量(,此时validationLayers向量超出了范围,并且createInfo->ppEnabledLayerNames指向的所有值也超出了范围。

要解决此问题,您需要从validationLayers复制或声明值,以便在调用vkCreateInstance时它们仍然有效。