Use maximumFramesPerSecond only as fallback
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
index ee7b693..9154d4d 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
@@ -439,20 +439,20 @@
}
}
-#if MVK_XCODE_13
- // macOS 12+ only
- double framesPerSecond = [screen maximumFramesPerSecond];
-#else
CGDirectDisplayID displayId = [[[screen deviceDescription] objectForKey:@"NSScreenNumber"] unsignedIntValue];
CGDisplayModeRef mode = CGDisplayCopyDisplayMode(displayId);
double framesPerSecond = CGDisplayModeGetRefreshRate(mode);
CGDisplayModeRelease(mode);
+#if MVK_XCODE_13
+ if (framesPerSecond == 0 && [screen respondsToSelector: @selector(maximumFramesPerSecond)])
+ framesPerSecond = [screen maximumFramesPerSecond];
+#endif
+
// Builtin panels, e.g., on MacBook, report a zero refresh rate.
if (framesPerSecond == 0)
framesPerSecond = 60.0;
#endif
-#endif
pRefreshCycleDuration->refreshDuration = (uint64_t)1e9 / framesPerSecond;
return VK_SUCCESS;