> On 4 Jul 2017, at 5:39 pm, Quincey Morris > <quinceymor...@rivergatesoftware.com> wrote: > > On Jul 4, 2017, at 00:18 , Graham Cox <graham....@bigpond.com> wrote: >> >> Is there a way to opt-out of vibrancy for an entire table view? > > There’s no clear indication that the performance problem has anything to do > with vibrancy.
True, but the -[NSCell _endVibrantBlendGroup] might suggest it - though it seems to just call through to CGContextEndTransparencyLayer, which is where the time is spent (my understanding is that CGLayers buffer drawing using a temporary bitmap). So, turning vibrancy on/off in system prefs has no effect. Next, I subclassed the NSTableView to return NO from -allowsVibrancy. It works - no more nasty desktop bleedthrough, but it still scrolls very slowly. > In both cases, the “expensive” call was about transparency, which could just > be about compositing view with transparent backgrounds. I’m wondering if > there are views that you can make opaque by specifying solid background > colors. The views this is part of are all opaque - in many cases returning YES from -isOpaque on purpose, as well as painting their backgrounds with solid colours. > Also check whether the table or cell views is marked as “layer backed” (in > the last tab of the inspector). I’ve noticed that in recent Xcodes, the top > level view of new projects seems to have this checked by default. It may be > that your older project *doesn’t* have this set, and it’s important to set it > for recent macOS versions, or (conversely) you do have this set and it’s not > a good idea. Aha… that certainly made a difference. It was not layer-backed, but turning on layer backing for just the top-level view that is hosting the scroller+table view does seem to allow it to work smoothly. > > OTOH, if the problem is related to vibrancy, compositing or transparency, > it’s hard to believe that this could/should slow things down so dramatically. > Can you try running the app with the popup menus removed temporarily, and see > what difference that makes? There might be some justification for a bug > report. > Removing the pop-up buttons temporarily also speeds things up quite a bit, though not as dramatically as the layer backing. I can live with layer-backing as a solution, it doesn’t appear to have any downsides. Obviously code internal to these views is now assuming it’s there. Is NSTableView documented anywhere to require layer backing? _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com