summaryrefslogtreecommitdiffstats
path: root/src/video_core/vulkan_common/vulkan_surface.cpp
diff options
context:
space:
mode:
authorSteveice10 <1269164+Steveice10@users.noreply.github.com>2023-07-01 08:35:07 +0200
committerSteveice10 <1269164+Steveice10@users.noreply.github.com>2023-07-01 08:46:03 +0200
commite146a0034552200cf19740f56fb05153f465a51e (patch)
tree2cf0606fda63cb50463afe8a7c26b958a2edc89d /src/video_core/vulkan_common/vulkan_surface.cpp
parentMerge pull request #10953 from FernandoS27/oh-oopsies-yfc (diff)
downloadyuzu-e146a0034552200cf19740f56fb05153f465a51e.tar
yuzu-e146a0034552200cf19740f56fb05153f465a51e.tar.gz
yuzu-e146a0034552200cf19740f56fb05153f465a51e.tar.bz2
yuzu-e146a0034552200cf19740f56fb05153f465a51e.tar.lz
yuzu-e146a0034552200cf19740f56fb05153f465a51e.tar.xz
yuzu-e146a0034552200cf19740f56fb05153f465a51e.tar.zst
yuzu-e146a0034552200cf19740f56fb05153f465a51e.zip
Diffstat (limited to 'src/video_core/vulkan_common/vulkan_surface.cpp')
-rw-r--r--src/video_core/vulkan_common/vulkan_surface.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/video_core/vulkan_common/vulkan_surface.cpp b/src/video_core/vulkan_common/vulkan_surface.cpp
index c34599365..cfea4cd7b 100644
--- a/src/video_core/vulkan_common/vulkan_surface.cpp
+++ b/src/video_core/vulkan_common/vulkan_surface.cpp
@@ -11,11 +11,9 @@
#include <windows.h>
// ensure include order
#include <vulkan/vulkan_win32.h>
-#elif defined(__APPLE__)
-#include <vulkan/vulkan_macos.h>
#elif defined(__ANDROID__)
#include <vulkan/vulkan_android.h>
-#else
+#elif !defined(__APPLE__)
#include <X11/Xlib.h>
#include <vulkan/vulkan_wayland.h>
#include <vulkan/vulkan_xlib.h>
@@ -44,12 +42,13 @@ vk::SurfaceKHR CreateSurface(
}
#elif defined(__APPLE__)
if (window_info.type == Core::Frontend::WindowSystemType::Cocoa) {
- const VkMacOSSurfaceCreateInfoMVK mvk_ci{VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,
- nullptr, 0, window_info.render_surface};
- const auto vkCreateMacOSSurfaceMVK = reinterpret_cast<PFN_vkCreateMacOSSurfaceMVK>(
- dld.vkGetInstanceProcAddr(*instance, "vkCreateMacOSSurfaceMVK"));
- if (!vkCreateMacOSSurfaceMVK ||
- vkCreateMacOSSurfaceMVK(*instance, &mvk_ci, nullptr, &unsafe_surface) != VK_SUCCESS) {
+ const VkMetalSurfaceCreateInfoEXT macos_ci = {
+ .pLayer = static_cast<const CAMetalLayer*>(window_info.render_surface),
+ };
+ const auto vkCreateMetalSurfaceEXT = reinterpret_cast<PFN_vkCreateMetalSurfaceEXT>(
+ dld.vkGetInstanceProcAddr(*instance, "vkCreateMetalSurfaceEXT"));
+ if (!vkCreateMetalSurfaceEXT ||
+ vkCreateMetalSurfaceEXT(*instance, &macos_ci, nullptr, &unsafe_surface) != VK_SUCCESS) {
LOG_ERROR(Render_Vulkan, "Failed to initialize Metal surface");
throw vk::Exception(VK_ERROR_INITIALIZATION_FAILED);
}