MacOS MapKit - CVDisplayLinkSetPaused alternating true/false several times per second

When using MKMapView within SwiftUI in MacOS, via NSViewRepresentable and a Coordinator, the are several console messages per second "CVDisplayLinkSetPaused", alternating between [TRUE]and [FALSE] when displaying a poly line and/or annotations. This is possibly preventing NSClickGestureRecognizer from working correctly, although that's probably another, developer (my), issue. These console messages have only occurred in the last two Mac OS beta releases, the last being 21D5039d. Even if these messages are not an indication of a problem, they are very distracting and annoying - taking up so much time and space in the logs.

Feedback submitted: FB9845486

I agree, these spurious(?) console messages are annoying! Unfortunately, it's a common thing with new versions of Xcode. Hopefully an update will calm things down.

I have the exact same annoying messages...

I have been seeing these since Xcode 13.1. Let us know if you figure out a way to make it stop! 😣

It's still happening with Xcode Version 13.3 beta (13E5086k) and Monterey 12.3 Beta (21E5196i), both the latest available as of today (4 Feb 2022).

Regards, Michaela

I'm seeing the same thing and also my NSClickGEstureRecognizer is not firing. Did you ever get to the bottom of this? - at least to get the gesture recogniser working, I'm less concerned about the logs. Any clues gratefully received. I'm seeing this using MapView in a standard storyboard, not using SwiftUI.

It's still happening with latest betas (Xcode 13E5095K and Mac OS 21E5212f). Also, I still haven't got NSClickGestureRecognizer to work, so it does seem related to the log messages or their underlying problem.

It's still happening with Xcode Version 13.3 beta 2 (13E5095k) and Monterey 12.3 Beta (21E5227a).

I tried running a working iPad app under Mac Catalyst with MKMapView as UIViewRepresentable. It also shows the messages AND then crashes with __validateTextureView:557: failed assertion `Texture View Validationtexture usage (0x05) doesn't specify MTLTextureUsagePixelFormatView (0x10)'_.

My understanding is that MapView uses Metal for its rendering, hence the messages re syncing screen refresh, and requires the MLTextureUsagePixelFormatView to be set. However, since everything works fine on iOS (iPad), it appears that there's a problem with the Mac OS and Catalyst implementation of MapView under SwiftUI.

I tried adding (blindly) MetalLayer and Metal Device instances and required settings to my code, but to no avail. When I get some spare time I'll collect all the evidence and submit a bug report.

Cheers,

Michaela

I'm observing the same issue with Xcode 13.3.1 (13E500a) using macOS Monterey 12.3.1 (21E258).

Additionally to the log messages, it incurs a CPU usage of 15 % when idle, versus 0 % when not displaying a view with a Map. Looking more closely, I observed a very faint flickering of some annotations on the map (pins and city locations).

When using MKMapView within SwiftUI in MacOS, via NSViewRepresentable and a Coordinator, the are several console messages per second "CVDisplayLinkSetPaused", alternating between [TRUE]and [FALSE] when displaying a poly line and/or annotations.

.. also seeing my log deluged with this effect, but in my case, none of the above conditions are true. There is significant use of SceneKit but no SwiftUI, MapView, or anything else from the quote above (unless "poly line" is equivalent to SceneKit drawing a twisty line through a 3-D space).

MacBook Pro (16-inch, M1 Max, 2021); macOS 12.3.1 (21E258); Xcode 13.3.1 (13E500a)

A seemingly overlooked feature in the Xcode console—filter—can provide a reprieve whenever the output is overly voluminous. One way is to preface your target output with a unique string, replacing occurrences of print("…") with print("[unique prefix] …") where necessary. Of course, this means that all output—yours and others’—without the unique prefix will be excluded, but in this case that is the desired effect.

For example, by using print("AWEAPP …") in your code and entering AWEAPP (sans quotes) as the filter, the noise-to-signal ratio will drop to zero, as shown below.

Before filtering:

After filtering:

So, no more endless CV… messages diluting the console output! You can, of course, embellish your output with timestamps, filenames, line numbers, etc. In the end, however, clearing or changing the filter to observe useful output from others would be prudent.

This is still happening. It's frustrating because it makes the console nearly useless for some simple debugging because anytime I write to the console my message immediately scrolls away. Why haven't they suppressed these console writes yet?

I search for the feedback number FB9845486 and it is not there. Did they just delete this feedback?

MacOS MapKit - CVDisplayLinkSetPaused alternating true/false several times per second
 
 
Q