andy-thomason / Vookoo

A set of utilities for taking the pain out of Vulkan in header only modern C++
MIT License
522 stars 52 forks source link

Vookoo will not run on Mac with Vulkan 1.3.216. #55

Open FunMiles opened 10 months ago

FunMiles commented 10 months ago

When installing Vulkan SDK 1.3.216 or after on MacOS, the following appears:

NOTICE: As of the 1.3.216 SDK release,  the Vulkan Portability Enumeration extension is being enforced by the Vulkan loader.  Failure to 'opt in' for non-conformant Vulkan implementations will cause applications to fail to find the MoltenVK ICD.  See the macOS release notes for more information.

Indeed the code will not run anymore. Fixing it requires a few changes: adding more layers to the default:

    instance_extensions_.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
    instance_extensions_.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);

and a flag when calling InstanceCreateInfo:

vk::InstanceCreateFlagBits::eEnumeratePortabilityKHR

Unfortunately, some of these constants are not available with the glfw provided Vulkan headers. Updating the version of glfw is also necessary. I will create a PR for this issue.

FunMiles commented 10 months ago

PR https://github.com/andy-thomason/Vookoo/pull/56 fixes the issue.