13-inch Retina MacBook Pro Review (Late 2012)by Anand Lal Shimpi on November 13, 2012 2:53 AM EST
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.
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 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 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.