尝试设置 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/

10-11 18:28