VK_ERROR_INCOMPATIBLE_DRIVER с Mac OS и Vulkan MoltenVK - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь использовать Vulkan API в моей Mac OS (с моей Intel HD Graphics 5000 1536 Mo). Но когда я создаю экземпляр с VkCreateInstance(...)

, результатом VkCreateInstance(...) будет VK_ERROR_INCOMPATIBLE_DRIVER.

Вот мой код для инициализации моего VkInstance:

    VkApplicationInfo vkAppInfo    = {};
    vkAppInfo.sType                = VK_STRUCTURE_TYPE_APPLICATION_INFO;
    vkAppInfo.pApplicationName     = "S2Engine";
    vkAppInfo.applicationVersion   = VK_MAKE_VERSION(1, 0, 0);
    vkAppInfo.pEngineName          = "No Engine"; //TODO plus tard
    vkAppInfo.engineVersion        = VK_MAKE_VERSION(1, 0, 0);
    vkAppInfo.apiVersion           = VK_API_VERSION_1_0;



    //Obligatoire
    VkInstanceCreateInfo vkInstanceCreateInfo = {};
    vkInstanceCreateInfo.sType                = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
    vkInstanceCreateInfo.pApplicationInfo     = &vkAppInfo;

    uint32_t glfwExtensionCount               = 0;
    const char** glfwExtensions                  ;

    glfwExtensions                            = glfwGetRequiredInstanceExtensions(&glfwExtensionCount);

    vkInstanceCreateInfo.enabledExtensionCount      = glfwExtensionCount;
    vkInstanceCreateInfo.ppEnabledExtensionNames    = glfwExtensions;

    vkInstanceCreateInfo.enabledLayerCount = 0;


    if (vkCreateInstance(&vkInstanceCreateInfo, nullptr /*custom allocator*/, &_vkInstance) != VK_SUCCESS) {
        throw std::runtime_error("failed to create instance!");
    }

ИтакМой вопрос: доступен ли API-интерфейс vulkan на моем Mac OS с MoltenVK? Если да, что я могу сделать, чтобы мое приложение работало?

1 Ответ

0 голосов
/ 07 ноября 2019

Вот ответ с форума vulkan, надеюсь, он поможет другим людям, которые пытаются разрабатывать с Vulkan на Mac OS:

Вы можете проверить ссылку для поддержки оборудования - набыстрый взгляд, я не вижу вашего графического процессора там. Однако, если вы работаете в macOS (в отличие, например, от запуска другой операционной системы на аппаратном обеспечении), вы не можете получить прямой доступ к Vulkan, потому что он не поддерживается ОС. Вы можете использовать MoltenVK (который является частью Vulkan SDK, так что вы, возможно, уже имеете его), слой перевода, который превращает вызовы Vulkan API в соответствующие вызовы Metal API.

...