Added config changes to support Vulkan 1.3.216.0 and later with portability bit set on macOS

This commit is contained in:
Rolf Hunt 2022-06-23 15:21:14 -05:00
parent 4390eb0ff8
commit 753b2614f6
2 changed files with 11 additions and 0 deletions

View file

@ -248,6 +248,10 @@ namespace vks
deviceExtensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME); deviceExtensions.push_back(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
} }
#if defined(VK_USE_PLATFORM_MACOS_MVK)
deviceExtensions.push_back("VK_KHR_portability_subset");
#endif
VkDeviceCreateInfo deviceCreateInfo = {}; VkDeviceCreateInfo deviceCreateInfo = {};
deviceCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; deviceCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
deviceCreateInfo.queueCreateInfoCount = static_cast<uint32_t>(queueCreateInfos.size());; deviceCreateInfo.queueCreateInfoCount = static_cast<uint32_t>(queueCreateInfos.size());;

View file

@ -51,6 +51,8 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation)
instanceExtensions.push_back(VK_MVK_IOS_SURFACE_EXTENSION_NAME); instanceExtensions.push_back(VK_MVK_IOS_SURFACE_EXTENSION_NAME);
#elif defined(VK_USE_PLATFORM_MACOS_MVK) #elif defined(VK_USE_PLATFORM_MACOS_MVK)
instanceExtensions.push_back(VK_MVK_MACOS_SURFACE_EXTENSION_NAME); instanceExtensions.push_back(VK_MVK_MACOS_SURFACE_EXTENSION_NAME);
instanceExtensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
instanceExtensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
#elif defined(VK_USE_PLATFORM_HEADLESS_EXT) #elif defined(VK_USE_PLATFORM_HEADLESS_EXT)
instanceExtensions.push_back(VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME); instanceExtensions.push_back(VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME);
#endif #endif
@ -88,6 +90,11 @@ VkResult VulkanExampleBase::createInstance(bool enableValidation)
instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; instanceCreateInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instanceCreateInfo.pNext = NULL; instanceCreateInfo.pNext = NULL;
instanceCreateInfo.pApplicationInfo = &appInfo; instanceCreateInfo.pApplicationInfo = &appInfo;
#if defined(VK_USE_PLATFORM_MACOS_MVK)
instanceCreateInfo.flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
#endif
if (instanceExtensions.size() > 0) if (instanceExtensions.size() > 0)
{ {
if (settings.validation) if (settings.validation)