Use NSScreen maximumFramesPerSecond on macOS 12+
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
index d106c41..ee7b693 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
@@ -439,6 +439,10 @@
}
}
+#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);
@@ -448,6 +452,7 @@
if (framesPerSecond == 0)
framesPerSecond = 60.0;
#endif
+#endif
pRefreshCycleDuration->refreshDuration = (uint64_t)1e9 / framesPerSecond;
return VK_SUCCESS;