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.

Post Your Comment

79 Comments

And just to further clarify, Thunderbolt does not really mux DP and PCIe signals, it takes the packets from both protocols and transports them via a common switching fabric, so that wording is slightly misleading.Reply

In my time with these, I find there is just a bit of UI lag to most things compared to an Air or the regular Macbook Pros, most of the time it's hard to even notice unless they are side by side. The calender flip animation and sometimes the green button re-size are particularly painful, you can literally count out the frames on the former. On the 15" you can force it to use the dGPU on AC power which fixes that, but there is no fallback for the 13". Reply

Speaking of which, if switching to the dGPU fixes some of the lag does that mean more of the rendering pipeline is given to the Nvidia chip unlike the HD4000, as otherwise that would put a hole in the single threaded performance theory? Reply

"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. "

Yes there is. Use Firefox or Chrome.

I could not believe the depth of detail in the investigation of the scrolling in Safari issue without the simple test to swap out with Firefox or Chrome and see how much of the problem is Safari rather than the OS/Hardware.

With Firefox, you can enable and disable GPU accelerated UI as well, to see if that helps or hurts.

My experience with all three browsers is that each can have various performance issues with some websites and situations, but that when one does, one of the others tends to be OK.Reply

Firefox doesn't even have Retina support yet, does it? Last time I heard it was planned for version 18.

Disabling hardware acceleration in Firefox would probably just result in even worse performance since it is enabled by default and the CPU single-thread performance is going to get even more maxed out otherwise.Reply

you mentioned in both the Intel S3700 and 13" rMBP reviews that OS X did not respond well to high IO latency. Could you expand on what you meant by that? Or is the explanation too complicated to put into layman's terms?Reply

I don't see how this is a much better option for someone who travels a lot and uses it mainly for typing. I love my MBA and only wish would be that it had more RAM and IPS display. If i had to do it all over again, I think I would still buy the MBA over the rMBP. If I had more money than I knew what to do with, I guess I'd go with the rMBP though.Reply

IMO what is wrong with the 13" rMBP is not just that the word "Pro" doesn't at all describe the hardware specs and capabilities of the machine, but that it is so so overpriced for what you get. Even Apple Fanbois are have been criticizing Apple for the complete ripoff that the 13" rMBP is.Reply

You know, I have to agree with those who say there's a bit of Apple bias going on here. So many important criteria here have been glossed over - remember the pricing of this machine puts it far out of reach for most 'consumers', who go and buy $500-700 dell machines. It's a high-end part for a high-end prosumer/professional.

The bottom line is - 8GB of RAM as a maximum ceiling (note - my *2008* MacBook Pro had the same limit) is far too low, and Anand you of all people should know that in the usable life of this machine (lets say 3 years), that limit is going to be hit - especially when it's not uncommon for web browsers with media-heavy content to eat 2+GB. And the move to 64-bit for stuff like the Adobe creative suite, which is a common use case for this particular machine, will eat even more RAM. I'm running 8GB on my MBP at the moment and I max it out very frequently.

I'm also not sure how you can recommend this over the 13" Air. It's much more expensive, the hardware is largley similar, performance isn't *that* much better, it doesn't offer anything in terms of upgradability other than Thunderbolt connectivity, and it's bigger and heavier. Not to mention in the real world, in 2012, it's a laggier experience.

Now, lets imagine an alternate universe where Apple decided not to shave quite so much off the size of the previous 13" pro, and instead gave us a quad core i5/i7 and a couple of RAM slots. Perhaps even a dedicated GPU and a 2.5" bay. Now that would be an improvement. What we have here is an expensive Macbook Air with a pretty display for text, that makes almost everything else look awful.Reply

When will we stop the insanity with this complaint about memory. Times are different, memory requirements are not going to quadruple again in the next four years. The world is not gearing up for Microsoft Gargantuan 9 which will require 8GB of RAM to load the desktop. If anything the world is going more mobile, and memory requirements will likely stagnate. Consider than an Ipad has just one GB of RAM, and they are selling about as many of those as casual consumer PC's nowadays, and you can see where we're heading.

Furthermore, any browser worth its salt that's pushing 2GB of RAM based on some standard media heavy tasks will drop that RAM in an instant without a huge user experience impact if you start nearing a system limit. It's just caching everything in sight because it sees that you have 16 GB of RAM; it doesn't mean your system would grind to a halt with only 8!Reply