summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteveice10 <1269164+Steveice10@users.noreply.github.com>2023-06-30 23:35:36 -0700
committerSteveice10 <1269164+Steveice10@users.noreply.github.com>2023-07-01 14:15:26 -0700
commitaa89ec921481696c976dd1ca6687721c98e0b2d7 (patch)
tree9d489207e1f53788635e868c84f1cf7d43e30467
parente146a0034552200cf19740f56fb05153f465a51e (diff)
yuzu: Use test window with VulkanSurface to check for present modes.
It is probably not correct to create a surface on a non-VulkanSurface window. On macOS this causes a preferences crash due to missing CAMetalLayer.
-rw-r--r--src/yuzu/vk_device_info.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/yuzu/vk_device_info.cpp b/src/yuzu/vk_device_info.cpp
index 7c26a3dc7..e1a0e6a2a 100644
--- a/src/yuzu/vk_device_info.cpp
+++ b/src/yuzu/vk_device_info.cpp
@@ -26,7 +26,10 @@ Record::~Record() = default;
void PopulateRecords(std::vector<Record>& records, QWindow* window) try {
using namespace Vulkan;
- auto wsi = QtCommon::GetWindowSystemInfo(window);
+ // Create a test window with a Vulkan surface type for checking present modes.
+ QWindow test_window(window);
+ test_window.setSurfaceType(QWindow::VulkanSurface);
+ auto wsi = QtCommon::GetWindowSystemInfo(&test_window);
vk::InstanceDispatch dld;
const auto library = OpenLibrary();