diff --git a/src/renderer_vk.cpp b/src/renderer_vk.cpp index 39c75f985..443ee4fdd 100644 --- a/src/renderer_vk.cpp +++ b/src/renderer_vk.cpp @@ -1220,13 +1220,21 @@ VK_IMPORT BX_TRACE("\t%s", layer.m_name); } } +#if BX_PLATFORM_OSX + uint32_t numEnabledExtensions = headless ? 0 : 3; + const char* enabledExtension[Extension::Count + 3] = +#else uint32_t numEnabledExtensions = headless ? 0 : 2; const char* enabledExtension[Extension::Count + 2] = +#endif { VK_KHR_SURFACE_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME, +#if BX_PLATFORM_OSX + VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, +#endif }; for (uint32_t ii = 0; ii < Extension::Count; ++ii) @@ -1288,7 +1296,11 @@ VK_IMPORT VkInstanceCreateInfo ici; ici.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; ici.pNext = NULL; +#if BX_PLATFORM_OSX + ici.flags = 0 | VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; +#else ici.flags = 0; +#endif ici.pApplicationInfo = &appInfo; ici.enabledLayerCount = numEnabledLayers; ici.ppEnabledLayerNames = enabledLayer; @@ -1767,13 +1779,21 @@ VK_IMPORT_INSTANCE BX_TRACE("\t%s", layer.m_name); } } +#if BX_PLATFORM_OSX + uint32_t numEnabledExtensions = headless ? 1 : 3; + const char* enabledExtension[Extension::Count + 3] = +#else uint32_t numEnabledExtensions = headless ? 1 : 2; const char* enabledExtension[Extension::Count + 2] = +#endif { VK_KHR_MAINTENANCE1_EXTENSION_NAME, - VK_KHR_SWAPCHAIN_EXTENSION_NAME + VK_KHR_SWAPCHAIN_EXTENSION_NAME, +#if BX_PLATFORM_OSX + "VK_KHR_portability_subset", +#endif }; for (uint32_t ii = 0; ii < Extension::Count; ++ii)