10

Ever since upgrading to Yosemite, the accessibility zoom feature is unusable when connected to an external monitor.

Steps to reproduce:

  • Enable Zoom in System Preferences - Accessibility.
  • Connect an external monitor, not using mirroring (second desktop).
  • Zoom in using CTRL+(two finger gesture) - or OPT-CMD-=

Expected:

  • Zoom is buttery smooth, everything renders at 60fps, no lag whatsoever

Actual:

  • All display on both screens is delayed, including video playback, mouse movement and keystrokes/text entry. System becomes unusably slow while zoomed in (8-12fps, while still trying to "catch up" on missed frames). It takes a long time to "recover" from a zoom by zooming back out.

Hardware:

  • MacBook Pro (Retina, 15-inch, Early 2013)
  • According to other sources, this seems to affect all Mac hardware running Yosemite

This has been reported on the Apple discussion forums multiple times: one two three four

I have not been able to find any acceptable solution.

Note that zoom performance is "perfect" (read: acceptable) once the external monitor is disconnected. It is also "perfect" when mirroring is used.

Edit: Removed link to http://testufo.com as it's too fragile under normal circumstances to be a useful reproduction.

Edit 2, Nov 18 2014: After upgrading to Yosemite 10.10.1, the performance is slightly improved, but still not up to previous standards. For example, go to https://kraken.io/ and move your mouse over the image slider. Then try doing the same thing zoomed in - it's unbearably slow. It feels like when zoom is activated (on multiple screens), it drops down to software rendering or something equally slow. The same test with only the single screen is perfect.

Edit 3: Other workarounds that have been suggested have had poor results:

  • Restart (or kill the WindowServer process, which will log you out). The first few minutes of usage are comparatively smooth, but still not 100%.

Edit 4: Enabling Increase contrast seems to be the best workaround so far. See my 2nd answer.

Edit 5: This is now completely fixed in 10.10.2.

0

9 Answers 9

4

This is now fixed in OS X 10.10.2

2
  • 1
    Yes, I turned "Scrolling with Inertia" back on this morning, and zoom acts as it's supposed to again, across both displays. Jan 28, 2015 at 14:50
  • I can confirm that it is fixed in 10.10.2. Thanks! Jan 31, 2015 at 6:24
4

After upgrading to Yosemite I've also been getting extremely slow response in a number of different situations such as long pauses for Spotlight to return file matches, slow start up of applications especially after waking from Display Sleep, as well as other operations. (It feels like walking in quicksand and finding you can't move like you could.) Also, I've been seeing console logs filled with repeated messages regarding invalid connections and dumps of mismatched trackpad gestures, sometimes with the nearly the same message filling an entire 4000 line console view. I think I've now found the cause, at least for my iMac so I'm putting it here to see if it's the cause of similar problems for others around slowness after switching to Yosemite slow issues.

I was digging through my user Preferences folder (in ~/Library Preferences) skimming random preference files to occupy myself while trying to get another idea of what to do next. (Trying to work had become really tedious). In com.apple.sidebarlists.plist, I stumbled upon a key with a value that continued after paging down quite a ways and then noticing that the scroll bar was still near the beginning of the file. I checked the file size and it was 11 MB (most of the preference files were much smaller than 100 KB, many being less than 10 KB in length). Trying to look at the file in Xcode was nearly impossible due to the sluggishness so I dumped it into a text property list to edit and found several keys with huge values, all with the key name of Bookmark (6 key values were just over 2.7 MB bytes long and 2 others were just under 4.3 MB long). Several of these were associated with external USB volumes, one with a volume that no longer existed and one with a volume that was a partition on the system drive; most if not all also had a short Alias key that existed for every volume described in this file. After many lost hours from my botched up attempt to edit the file to remove the problem sections (which I don't recommend) leaving my machine unable to boot up, I finally trashed the file. Since then all of the bothersome delays are gone (hopefully for good).

I can easily see how it might have slowed Spotlight (that felt like waiting on a drive to spin up) since opening the Spotlight Finder window probably required reading the "sidebarlists" preferences to determine how to display the window and would take a while to read through the sequential data (similar to the slow down when I read or edited the file myself. Now that preference file is a lean 7 KB (about 1,570 times smaller than it was) and it feels great…as light and fast as it was running OS X 10.9 (Mavericks).

Here's a summary of what to look at and possibly do:

  1. Open /Users/(username)/Library/Preferences (~/Library/Preferences) in a Finder window; change to list view and sort the files by size.
  2. Check to see if com.apple.sidebarlists.plist or possibly any of the preference files is much larger than most of the others.
  3. If you find any excessively large files move them out of the folder and put them somewhere (such as in a new folder you create on the Desktop). This won't cause any problem since it will be recreated when you restart though you may have to reset some of the Sidebar settings to your liking using Finder -> Preferences.
  4. Restart your machine (or relaunch the Finder) and see if the speed issues have improved. If so, keep track of whether things remain better (how could you not?)
  5. Whether or not it works it would be good for me and others to know so that we can help end this problem those affected in this way or determine that this isn't the cause and continue to determine just what is wrong, if possible.

I do hope it helps as it has for me (so far) since writing this post would have been unbearable if the same slowness still existed!

3

There is a workaround posted on the Apple forums.

Pros:

  • The mouse/key entry performance does "feel" significantly better, as does the momentum zoom.
  • Zoom is per-screen, rather than both at once

Cons:

  • It is still not nearly as performant as it was in Mavericks. The testufo.com site will still not render at 60fps while zooming.
  • While this workaround does make multiple-screen performance somewhat better in Yosemite, it makes single-screen performance much worse! Single screen performance is already "perfect" using the default "Full Screen" zoom and this is a step backwards.

Instructions:

  • In System Preferences-Accessibility, set the Zoom Style to Picture-in-picture.

System Preferences - Accessibility

  • Click More Options...

System Preferences - Accessibility - More Options...

  • Click Adjust Size and Location
  • You will see a rectangular magnified panel with an "OK" button in the middle. Drag the corners to the upper-left and bottom-right corners of the screen. Click OK.

Now, when you zoom, it is usable, but still noticeably slow.

0
3

Best workaround so far:

In System Preferences-Accessibility, select Increase contrast (which will implicitly select Reduce transparency). This seems to improve performance in some circumstances, but it does dramatically affects aesthetics. The slider on http://kraken.io is smooth while zoomed in. There are still some circumstances where zooming is a little sluggish, but it is not nearly as bad as before.

Edit: After several hours of running with Increase contrast enabled (and upgrading to Yosemite 10.10.1), I can say performance is now back to an acceptable level.

I'm still not thrilled about having to enable an accessibility feature I don't want or need to improve performance. I really don't like the appearance of Increase contrast: solid black outlines around text inputs & buttons, the zebra-stripe effect on lists, etc. is all a bit jarring coming from the subtlety of OS X.

I tried just enabling Reduce transparency (which gets implicitly selected when you enable Increase contrast) but that setting alone doesn't help: both need to be enabled to see any performance gain.

Screenshot: Normal appearance Normal appearance

Screenshot: Appearance with 'Increase contrast' enabled Appearance with 'Increase contrast' enabled

1
  • I'm still interested in finding a real solution so I will leave the bounty open for now. Nov 19, 2014 at 1:30
2
+50

FWIW, my experience is identical in all scenarios you describe (The original and both work-arounds). I'm using 10.10.1 on a 2014 Mini CoreI7 with 16GB of RAM and an SSD with two external 24" displays. I do see a very slight lag on the kraken.io site, but nothing awful.

Some ideas on further troubleshooting steps — Each of these steps aim to reduce the resources needed to render the screens.

  1. Try going down to thousands of colors in displays.
  2. Try reducing the screen resolutions for each of your displays
  3. Try changing the arrangement of your screens so they are stacked vertically. — (I'm guessing that by reducing the largest dimension of the combined screens' offscreen buffer you'll see a decrease in memory needed to render it; I'm not familiar enough with modern GPUs though to know how they optimize memory usage and this may have little or no effect. The reasons this would have helped in the past may no longer apply today.)

Even if these help, I get they probably won't be a practical solution for you. I offer them mainly as a way to try and diagnose the underlying issue. Wish I could offer more.

1

I noticed your post. I've upgraded my main production hdd up to yosemite a little early. I ended up running mavericks from an external drive and accessing yosemite just for files as the hdd is still inside my macPro. Now I am booted back up to yosemite as it is getting updates and acting a little better (slowly). So some things are working better, but i am still trying to debug things and I believe I just figured out how to get my cpu back a lot from the windowserver thread. Just go to accessibility and turn off all zoom features. I think that having, in my case, zoom with the ctrl+scroll wheel turned on, that it was rendering everything in a zoomed level as well as the current level, so it would be ready if i were to click ctrl and zoom in on something. when i turned this off, the computer's cpu jumped right back down to an acceptable level. its insane that mavericks runs better off a usb2.0 hdd than ribboned right into the logicboard. Also, after i turned this zoom stuff off, i clicked increase contrast and it didn't make much of a difference from the gain that i already got. it makes the os look like crap, so i turned it back off to get my blur back in the UI. hope this helps. sorry for my capitalization, i just don't really feel like it atm. :)

1

Two monitors, transparency off. I've have trouble with horribly laggy control-magic mouse zooming since updating to Yosemite. Sometimes it'll take as much as 5 seconds for a simple screen zoom to complete. Trying to de-zoom while the Mac is off doing it's zoom thing sometimes just adds to the problem.

Monitor level zoom is much better behaved if I set Scrolling to "without inertia" in the Mouse options dialog of the Mouse & Trackpad pane of the Accessibility System Preferences. Zoom is now snappy, and stops when I stop moving my finger on the mouse. For that, I can live without the occasionally useful "mouse inertia" feature. -Maybe Apple will get around to fixing the inertia problem, but til then this seems the best solution.

2
  • Did you try with "Increase Contrast"? That seems to work well with external monitors + inertia scrolling, but is uglier. I will give the inertia thing a try when I have a monitor nearby. Dec 26, 2014 at 22:02
  • Looks like I can't access that dialog with just a trackpad. Dec 27, 2014 at 23:51
1

On my Catalina (10.15.7), the problem still remains; WindowServer uses between 12% to 27%. I have a 4K monitor (BenQ PD3220U) attached, and it seems like macOS has a problem with that:

In a related post I saw that when checking logs with the command:

log stream --predicate '(process == "WindowServer")' --debug

I get:

2020-11-16 20:34:43.764462+0100 0x525      Debug       0x0                  378    0 
WindowServer: (CoreDisplay) [com.apple.CoreDisplay:default] [DEBUG] - On display
0x04280880, surface is not detached, CoreDisplay is detached (0x00000000), 
DetachCode = 0

These are logged at a rate of 10-30 rows per second, depending on the scaling set on the external monitor.

The (sad) solution that worked for me was to give up the MBP internal monitor; by shutting the lid there is no more frantic logging, the fans stops and WindowServer is calming down. Sweet silence, but not happy for losing a screen.

0

I'm sure this won't work for everyone, but for me all I did was bring up display preferences and change it to mirror my displays, then changed it back to separate displays. WindowServer's CPU dropped immediately from about 80% to 10%.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .