diff --git a/src/video_core/renderer_vulkan/vk_instance.cpp b/src/video_core/renderer_vulkan/vk_instance.cpp index eedba4c8..a54f2e0c 100644 --- a/src/video_core/renderer_vulkan/vk_instance.cpp +++ b/src/video_core/renderer_vulkan/vk_instance.cpp @@ -317,7 +317,7 @@ bool Instance::CreateDevice() { .nullDescriptor = true, }, vk::PhysicalDeviceSynchronization2Features{ - .synchronization2 = has_sync2, + .synchronization2 = true, }, }; @@ -328,12 +328,18 @@ bool Instance::CreateDevice() { if (!robustness) { device_chain.unlink(); } + if (!has_sync2) { + device_chain.unlink(); + } try { device = physical_device.createDeviceUnique(device_chain.get()); } catch (vk::ExtensionNotPresentError& err) { LOG_CRITICAL(Render_Vulkan, "Some required extensions are not available {}", err.what()); return false; + } catch (vk::FeatureNotPresentError& err) { + LOG_CRITICAL(Render_Vulkan, "Some required features are not available {}", err.what()); + return false; } VULKAN_HPP_DEFAULT_DISPATCHER.init(*device);