Vulkan API versions and MoltenVK


When I call vkGetPhysicalDeviceProperties and examine the apiVersion field for a MoltenVK device it says version 1.0.141. That is consistent with MoltenVK’s issue tracker (issue 822) that they still do not support Vulkan 1.1. But, what does the minor version (0) mean? Are the minor version and patch versions completely independent? And why is there information floating around claiming that MoltenVK supports Vulkan 1.2 already? (Just google “MoltenVK Vulkan 1.2”.)

I feel like I’m missing something: Is it possible to ignore the version and use some 1.1 and 1.2 functionality regardless? I’ve tried activating the debug_PRINTF layer but it won’t load since it requires Vulkan 1.1.

Thanks for any insights,

MoltenVk is 1.0. The Vulkan SDK is 1.2 (which services any previous version). Might mean (or not) that your VkInstance is 1.2. Try vkGetInstanceProcAddr(nullptr, "vkEnumerateInstanceVersion"). Your VkPhysicalDevices would still be 1.0 as you say.

Vulkan spec is mostly semver. But as it has unified source across minor versions so far, the patch version is not reset to 0 on each minor version.

I think the point he’s trying to make is that there is no version “1.0.141” of Vulkan. There’s a 1.2.141, but the highest 1.0 release has a much smaller patch number.

Yea. That’s what I am saying. One has to disambiguate Vulkan SDK version from VkPhysicalDevice version. You are always just supposed to install the latest SDK (1.2.141). That means up to 1.2 is “supportable”, but not that it is actually supported.

As for Vulkan (the specification), there is even 1.0.144 right here.