diff options
author | Matías Locatti <42481638+goldenx86@users.noreply.github.com> | 2022-12-02 22:32:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-02 22:32:54 +0100 |
commit | c043ba84675794b37c42ac47b2776dc57d63decb (patch) | |
tree | 479743223a7103a600bf162fffa0203c9f92232d /src/video_core/vulkan_common/vulkan_instance.cpp | |
parent | Merge pull request #9363 from liamwhite/gs (diff) | |
parent | Vulkan: update initialization (diff) | |
download | yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.tar yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.tar.gz yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.tar.bz2 yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.tar.lz yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.tar.xz yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.tar.zst yuzu-c043ba84675794b37c42ac47b2776dc57d63decb.zip |
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_instance.cpp')
-rw-r--r-- | src/video_core/vulkan_common/vulkan_instance.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/video_core/vulkan_common/vulkan_instance.cpp b/src/video_core/vulkan_common/vulkan_instance.cpp index a082e3059..35e073e16 100644 --- a/src/video_core/vulkan_common/vulkan_instance.cpp +++ b/src/video_core/vulkan_common/vulkan_instance.cpp @@ -14,13 +14,15 @@ #include "video_core/vulkan_common/vulkan_wrapper.h" // Include these late to avoid polluting previous headers -#ifdef _WIN32 +#if defined(_WIN32) #include <windows.h> // ensure include order #include <vulkan/vulkan_win32.h> -#endif - -#if !defined(_WIN32) && !defined(__APPLE__) +#elif defined(__APPLE__) +#include <vulkan/vulkan_macos.h> +#elif defined(__ANDROID__) +#include <vulkan/vulkan_android.h> +#else #include <X11/Xlib.h> #include <vulkan/vulkan_wayland.h> #include <vulkan/vulkan_xlib.h> @@ -39,8 +41,15 @@ namespace { case Core::Frontend::WindowSystemType::Windows: extensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME); break; -#endif -#if !defined(_WIN32) && !defined(__APPLE__) +#elif defined(__APPLE__) + case Core::Frontend::WindowSystemType::Cocoa: + extensions.push_back(VK_MVK_MACOS_SURFACE_EXTENSION_NAME); + break; +#elif defined(__ANDROID__) + case Core::Frontend::WindowSystemType::Android: + extensions.push_back(VK_KHR_ANDROID_SURFACE_EXTENSION_NAME); + break; +#else case Core::Frontend::WindowSystemType::X11: extensions.push_back(VK_KHR_XLIB_SURFACE_EXTENSION_NAME); break; @@ -59,6 +68,10 @@ namespace { extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME); } extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME); + +#ifdef __APPLE__ + extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME); +#endif return extensions; } @@ -140,7 +153,7 @@ vk::Instance CreateInstance(const Common::DynamicLibrary& library, vk::InstanceD } vk::Instance instance = std::async([&] { - return vk::Instance::Create(required_version, layers, extensions, dld); + return vk::Instance::Create(available_version, layers, extensions, dld); }).get(); if (!vk::Load(*instance, dld)) { LOG_ERROR(Render_Vulkan, "Failed to load Vulkan instance function pointers"); |