Use superlayer to find NSScreen
diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
index 6929853..d106c41 100644
--- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
+++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm
@@ -426,10 +426,15 @@
 #if MVK_MACOS && !MVK_MACCAT
 	// Find the screen for the window whose content view is backed by the swapchains CAMetalLayer.
 	// Default to the mainScreen if no such window can be found.
-	NSScreen *screen = [NSScreen mainScreen];
+	NSScreen* screen = [NSScreen mainScreen];
+	CALayer* layer = _mtlLayer;
+	while (layer.superlayer) {
+		layer = layer.superlayer;
+	}
+
 	for (NSWindow* window in [[NSApplication sharedApplication] windows]) {
 		NSView *view = [window contentView];
-		if (view && ([view layer] == _mtlLayer)) {
+		if (view && ([view layer] == layer)) { // Check against layer and not _mtlLayer.
 			screen = [window screen];
 		}
 	}