Retina Display: Scrolling & UI Performance

With the first Retina MacBook Pro I noticed UI performance in certain applications degraded considerably compared to previous, non-Retina MBPs. Browsing my Facebook news feed in Safari and scrolling down as well as just scrolling through a long email thread in Mail both caused frame rates to drop below 30 fps. Performing the same tests on my 2011 15-inch MBP yielded UI frame rates closer to 60 fps.


13-inch rMBP (left) vs. 15-inch rMBP (right)

The move to Mountain Lion improved UI performance, but it's still an issue. Switching between Retina and non-Retina MacBook Pros results in a very noticeable difference in UI frame rates, especially in problematic applications.

Apple does a lot of CPU and GPU work to make OS X look like OS X. Scaling the workload up from 1.76 million pixels to 4 and 5 million pixels creates additional work for both the CPU and GPU that neither chip vendor had planned on. Apple had to replace some fixed function code with general purpose CPU and GPU code to achieve consistent image quality in enabling Retina, which obviously has performance implications.

Next-generation GPUs should do a better job of driving these ultra high resolution displays, but today it looks like our biggest bottlenecks are software and single threaded CPU performance. In every situation where UI frame rate drops significantly on the rMBP, the offending application usually ends up consuming 100% of a single CPU core. This is true in Safari, Mail and other applications where I notice drops in scrolling frame rate.


The worst case UI perf

The worst case performance I recorded on the 13-inch rMBP was 16 fps when scrolling in Safari with Facebook loaded at the 1440 x 900 scaled resolution setting. Minimum frame rate at the default best for Retina setting ended up being around 18 fps. It's distracting and a clear regression from other, non-Retina Macs. That's the lowest performance you see, but not everything falls into that range. Scrolling down the AnandTech front page for example happens at around 40 - 50 fps at the 1440 x 900 scaled resolution. Other animations will happen as high as 60 fps, although you typically notice when things are slow not when they're performing as expected.


The better case

The 13 I'm testing had demonstrably lower scrolling performance than my 15-inch rMBP, but I believe that has to do with the difference in CPU clocks more than anything else. My 13 uses a 2.5GHz Core i5 that can turbo up to 3.1GHz, while my 15 has a max single threaded turbo of 3.6GHz - an increase of 16%. There's also the fact that the 15-inch model features a quad-core CPU, leaving you with more idle cores in the event that you're actually doing more than just scrolling all day. I suspect the combination of these two things is why a lot of folks perceive the 15-inch rMBP to deliver faster UI performance.

The 15-inch model does have a discrete GPU, however I didn't notice a big performance difference in UI frame rates when I was on integrated vs. discrete graphics. I do believe that a lot of the present issues are related to Apple not GPU accelerating more of the drawing pipeline and as a result, single threaded CPU performance suffering under the load of 4 and 5MP displays. Intel (and AMD) design their CPUs for the types of workloads most of their customers will be running. The vast majority of the market isn't running OS X with 4MP+ panels. A lot of this is related to OS X itself, as you don't have the same scrolling issues under Windows. As we saw in our Surface review, simply making an application (or in this case, an OS) look a certain way can eat up a good amount of CPU time.

There's not much you can do here other than wait for faster hardware or buy the fastest CPU available on whatever system you're considering. Single threaded performance will scale linearly with CPU clock speed, so higher clocked CPUs should deliver smoother scrolling performance. Ultimately just scaling CPU clock is an inefficient way to solve the current UI frame rate issues. Future revisions of OS X will likely shift even more UI workload to the GPU, plus we'll see new microprocessor architectures that will perform better with these types of workloads as well. The only issue is I don't know when either of these things will happen. Haswell should bring a good increase in IPC and maybe even a slight increase in frequency, which will definitely help.

What we'll need however, without any significant changes to OS X is an outright doubling of single threaded CPU performance. In the worst case scenario that could mean that we won't see UI frame rate fixed for years. I doubt it'll be that long, if I had to guess I would say that Haswell will bring a good improvement and around the Broadwell (2014) timeframe is probably we'll see things really get better. I don't have intimate knowledge of Apple's OS X roadmap and I also don't know the instruction mix that's causing this behavior so I can't really say anything for certain, I'm just speculating.

The 13-inch Retina Display in Numbers USB 3.0 Performance
Comments Locked

79 Comments

View All Comments

  • Spunjji - Tuesday, November 13, 2012 - link

    As of a few days ago Adobe updated Lightroom to include Retina support in the Develop window. That means the UI will scale while the image remains at a 1 for 1 pixel mapping and is unaffected by scaling.
  • piroroadkill - Tuesday, November 13, 2012 - link

    In your chart noting the different screen ratios, you have Retina MacBook Pro under 16:9 - clearly incorrect, 2560x1600 and 2880x1800 for the 13 and 15 inch respectively are 8:5 ratios (16:10 in common terms).
  • Beerfloat - Tuesday, November 13, 2012 - link

    A MacBook Pro needs a GPU, period. Sure, performance of the Intel solution is getting stronger, and may soon reach parity on the low end. But more importantly, the mature driver and ecosystem that Nvidia brings will still be an advantage for some generations to come.
    This kind of corner cutting is almost acceptable in the Air. But not in a Pro.
  • Spunjji - Tuesday, November 13, 2012 - link

    Agreed. Shame, but definitely a compromise too far.
  • mayankleoboy1 - Tuesday, November 13, 2012 - link

    " I definitely noticed the missing cores (and decrease in clock speed compared to the higher spec'd 15),"

    What are you doing that makes use of 4 real cores ? And is the 200mhz speed difference really noticable ?
    I would say that in normal surfing+office apps, a SSD would make all the differences between CPU redundant...
  • jramskov - Tuesday, November 13, 2012 - link

    Lightroom would be one answer.
  • mayankleoboy1 - Tuesday, November 13, 2012 - link

    But does Anand even use it ? Regularly ?
  • tipoo - Friday, December 7, 2012 - link

    Why would someone buy this for "surfing+office apps"? It's meant to be a machine for professionals and high end users, hence Pro.
  • smurray - Tuesday, November 13, 2012 - link

    What app is being used to measure the FPS of the UI during things like Safari scrolling? I currently have an 13" rMBP w/ the upgraded i7 CPU and am curious what my results would be compared to what was experienced in the review.
  • Ryan Smith - Tuesday, November 13, 2012 - link

    For instantaneous tests like Safari (where you see the speedometer-styled FPS indicator), we use Quartz Debug. For average framerates over a period of time we use the GL Injection Tool.

Log in

Don't have an account? Sign up now