尝试设置 Vulkan 应用程序,但是当我将 apiVersion
设置为 VK_VERSION_1_0
时,我从 VK_ERROR_INCOMPATIBLE_DRIVER
获得了 vkCreateInstance
。
如果我设置了 apiVersion = 0
,它可以正常工作。
我错过了什么还是这种行为是无意的(我想我错过了一些东西)?
VkApplicationInfo appInfo;
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
appInfo.pNext = NULL;
appInfo.pApplicationName = "Vulkan Tutorial";
appInfo.applicationVersion = VK_MAKE_VERSION(0, 0, 0);
appInfo.pEngineName = "LUL";
appInfo.engineVersion = VK_MAKE_VERSION(0, 0, 0);
appInfo.apiVersion = VK_VERSION_1_0;
VkResult result = vkCreateInstance(&instanceInfo, NULL, &instance);
if (result != VK_SUCCESS){
__debugbreak();
}
最佳答案
您使用了错误的宏!
请改用 VK_API_VERSION_1_0
。
( VK_VERSION_1_0
只是为了检测您包含 Vulkan 的 1.0 header 。它确实只有 True
作为值。)
(顺便说一句,使用 VkApplicationInfo
是可选的。如果您确实使用它,则可以选择提供应用程序和/或引擎名称。App 和 Engine 不一定使用 Vulkan 的版本控制方案,因此在那里使用 VK_MAKE_VERSION
不一定有意义)
关于c++ - 将 apiVersion 设置为 VK_VERSION_1_0 时的 VK_ERROR_INCOMPATIBLE_DRIVER,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42045467/