NSScrollView of a large graphic jumps when scrolling on OSX Ventura (13.0.1)

This is an internal app that displays a large NSView (50K x 25K pixels) within a NSScrollView the size of my 27" iMac. The code worked fine, scrolling both ways was very smooth, under the latest release of OS-X 12. I upgraded to 13.0.1 and now the scrolling jerks every ~ 500 pixels in either direction.

I am using XCode 14.1 and writing in Objective-C.

I notice the NSLog now contains the message "Metal API Validation Enabled" which it never did before.

Is this a bug or has something fundamental changed in Ventura which requires changing the viewing code. (Memo to self: NEVER install a ".0" release. Let somebody else be the guinea pig.)

Thanks for whatever help you can provide.

Ron

I suggest you start by using Instruments with the Time Profiler template to try to visualize what's going in. In Instruments, add the Hangs instrument to your profile. It's a fairly new instrument that can detect hangs in the main thread, if that's what's causing the problem. Also, since this is happening during scrolling, you might add the Hitches instrument, in case the issue is on the animation side.

If by "OS-X 12" you mean (what is now called) macOS 10.12, there have been some changes to the way NSView drawing works since then, gated by a linked-on-or-after check. For that reason, it's not so very strange that the performance characteristics changed when you re-built your existing code with a newer Xcode and newer SDK. In particular, if your large NSView has a custom drawRect method, you may need to reevaluate your implementation.

If you can't make any progress on this, I suggest you open a code-level support incident with Developer Technical Support, using the link in your developer account page.

NSScrollView of a large graphic jumps when scrolling on OSX Ventura (13.0.1)
 
 
Q