diff --git a/src/video_core/vulkan_common/vulkan.h b/src/video_core/vulkan_common/vulkan.h index 4a6bd7094b..4d597ad785 100644 --- a/src/video_core/vulkan_common/vulkan.h +++ b/src/video_core/vulkan_common/vulkan.h @@ -11,7 +11,7 @@ #define VK_USE_PLATFORM_WIN32_KHR #elif defined(__APPLE__) #define VK_USE_PLATFORM_METAL_EXT -//#define VK_USE_PLATFORM_MACOS_MVK +#define VK_USE_PLATFORM_MACOS_MVK #elif defined(__ANDROID__) #define VK_USE_PLATFORM_ANDROID_KHR #elif defined(__HAIKU__) diff --git a/src/video_core/vulkan_common/vulkan_surface.cpp b/src/video_core/vulkan_common/vulkan_surface.cpp index ed12eb6778..c5544c712b 100644 --- a/src/video_core/vulkan_common/vulkan_surface.cpp +++ b/src/video_core/vulkan_common/vulkan_surface.cpp @@ -38,9 +38,8 @@ vk::SurfaceKHR CreateSurface( .flags = 0, .pLayer = static_cast(window_info.render_surface), }; - const auto vkCreateMetalSurfaceEXT = reinterpret_cast(dld.vkGetInstanceProcAddr(*instance, "vkCreateMetalSurfaceEXT")); + const auto vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT(dld.vkGetInstanceProcAddr(*instance, "vkCreateMetalSurfaceEXT")); if (!vkCreateMetalSurfaceEXT || vkCreateMetalSurfaceEXT(*instance, &metal_ci, nullptr, &unsafe_surface) != VK_SUCCESS) { -#if 0 // TODO: Way to fallback? - where's my vulkan headers // Attempt to make a macOS surface instead then... // This is the deprecated VkMacOSSurfaceCreateInfoMVK(3) version; but should work if the above failed @@ -51,14 +50,12 @@ vk::SurfaceKHR CreateSurface( .flags = 0, .pView = static_cast(window_info.render_surface), }; - const auto vkCreateMacOSSurfaceMVK = reinterpret_cast(dld.vkGetInstanceProcAddr(*instance, "vkCreateMacOSSurfaceMVK")); + const auto vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK(dld.vkGetInstanceProcAddr(*instance, "vkCreateMacOSSurfaceMVK")); if (!vkCreateMacOSSurfaceMVK || vkCreateMacOSSurfaceMVK(*instance, &macos_legacy_ci, nullptr, &unsafe_surface) != VK_SUCCESS) { LOG_ERROR(Render_Vulkan, "Failed to initialize Metal/macOS surface"); throw vk::Exception(VK_ERROR_INITIALIZATION_FAILED); } -#endif LOG_ERROR(Render_Vulkan, "Failed to initialize Metal/macOS surface"); - throw vk::Exception(VK_ERROR_INITIALIZATION_FAILED); } } #elif defined(__ANDROID__)