Achieving Retina

To make the MacBook Pro’s Retina Display a reality Apple had to work with panel vendors to build the panels it wanted at a reasonable cost, as well as deliver the software necessary to support insanely high resolutions. There was another problem Apple faced in making the rMBP a reality: the display pipeline of the GPUs Apple wanted to use didn't officially support scaling to the resolution Apple demanded of them. Let me explain.

All modern GPUs have fixed function scaling hardware that is used to efficiently scale between resolutions. A scaler either in your GPU or in your display panel is what lets you run non-native resolutions at full screen on your LCD (e.g. running 1680 x 1050 on a 1920 x 1080 panel). None of the GPUs used in the Retina Display MacBook Pro officially support fixed-function scaling of 3840 x 2400 or 3360 x 2100 to 2880 x 1800 however. Modern day GPUs are tested against 2560 x 1440 and 2560 x 1600, but not this particular 5MP resolution. Even 4K resolution support isn’t widespread among what’s available today. Rather than wait for updated hardware and/or validation, Apple took matters into its own hands and built its own GPU accelerated scaling routines for these higher resolutions. Fixed function hardware is almost always more efficient from a performance and power standpoint, which is why there’s some additional performance loss in these scaled resolution modes. 

What’s even crazier is Apple wasn’t pleased with the difference in baseline filtering quality between the Intel HD 4000 and NVIDIA GeForce GT 650M GPUs. As the Retina Display MacBook Pro would have to regularly switch between GPUs, Apple wanted to ensure a consistently good experience regardless of which GPU was active. There are a lot of filtering operations at work when doing all of this resolution scaling, so rather than compromise user experience Apple simply wrote its own default filtering routines. Since you want your upscale and downscale quality to be identical, Apple had to roll its own implementation on both. Apple’s obsessive attention to detail really made it possible to pull all of this off. It’s just insane to think about.

The Software Side of Retina: Making it All Work Driving the Retina Display: A Performance Discussion
Comments Locked

471 Comments

View All Comments

  • Penti - Saturday, June 23, 2012 - link

    W8 doesn't change anything, having one setting for Metro and one for Desktop that works just like before doesn't cut it.
  • Spoony - Saturday, June 23, 2012 - link

    I don't think you've been understanding what I've been saying.

    Quartz is a fully resolution independent drawing layer. It can map to any pixel density necessary. It is incredibly fast and flexible, especially when tied in to technologies like Core Animation, Core Image, and Core Text.

    It's also worth noting that Core UI exists in OS X, and has done since 10.5. This is a vector/texture baking engine that draws all interface elements in OS X in a fully resolution agnostic way. This is a very nice, and slick piece of software.

    You do make a point, Apple keeps doing this 2x scaling thing. Why?

    As it turns out, U/I scaling is a very complex thing. Not only is it a bit difficult to wrap your head around, it's a bit difficult to code against. Everybody isn't about to go build vector assets for their applications. Apple has to meet developers (and its own internal application teams, probably) halfway. Thus the @2x assets. It is a somewhat limiting, although fairly consistent and simple method for enabling bitmap creation in a resolution independent interface.

    So you're wrong, OS X does have (and has had) support for full resolution independence. You can scale to your heart's content, from a 600dpi printer to a 72dpi display, at any interface factor.

    The question is simply more complex than "does the slider work". Windows does not scale well at all, applications tear, refuse to scale, magnify far too much, render incredibly blurry images and text. The rendering layer is not versatile, nor set up for this kind of usage. Win8 improves matters, but not with as much depth as we'd have hoped.
  • ananduser - Sunday, June 24, 2012 - link

    I know that Apple's Quartz engine is scaling capable the agnostic and traditional way. Just was never good at it for extreme scenarios; a common gripe with macusers demanding better implementation. Windows' similar mechanism was always more efficient especially since Vista(XP's sucked).
    3rd party apps that don't scale properly have only their devs to blame. I don't know your particular app use on Windows but I can say that you gripes with it are exaggerated or maybe translated from your OSX experience. Battle of the sliders is ultimately a question of correct dev use. 3dmark for instance makes use of their own trademark GUI that does not make use of Win resources. I've always hated that. So does itunes on WIndows or Safari. These will never work right.

    The 2x scaling is a rigid compromise. It achieves consistency but not resolution independence. As I said before, resolution independence does not exist as it is idealistic in theory, and abstracts constraints such as scaling factors. If Apple pushes ahead with their low/normal/high scaling presets across their entire line-up, and in the process completely eliminates the notion of changing resolution(as in picking a number from a table) they will achieve a consistent experience like on ios; and it will still not be resolution independence "from a technical pov".
    I'm arguing semantics and not the MBP-R which is a spanking machine.
  • Spoony - Sunday, June 24, 2012 - link

    Lots of the software I use on Windows fails hard when you crank that slider up. Photoshop, Illustrator, SAP, iTunes (woe is me), Chrome, Office, etc... a vast majority of the software I want to use does not work correctly. Plus Win7 isn't exactly elegant about scaling artwork, even universal widgets get a little weird looking.

    And here I agree with you. 2x is rigid, it is not ideal, we would want to pick a resolution and then pick a U/I scaling value to get exactly the pixel density and U/I size that is ideal for our use. I would like that a great deal.

    Unfortunately that's not the reality of designing interfaces today. We are moving into new territory here from an execution standpoint, and you can't just go vectorize all your assets and FP-define all of your layout coordinates and transforms overnight.

    To make this work, Apple need to meet developers and users halfway. They need to make it simple for the user to select the most comfortable size for elements, while also providing a "we believe this is best" mode. They need to give developers a relatively straightforward way to develop assets for these higher resolution displays, and not force too much layout tweaking.

    This is a transitional period. I believe Apple has struck a decent balance. A balance that works and will actually allow this to fly. It isn't the best of all worlds right now, but that day is coming. Certainly what Apple ships today is better than what Microsoft ships today. That difference will also be eroded by time.
  • ananduser - Sunday, June 24, 2012 - link

    I noticed Anand's review update. Windows set on 200% increase, makes the desktop similar to OSX' retina setting. And furthermore Anand also stated that under this state Windows faces the same 3rd party related issues as OSX.

    "To make this work, Apple need to meet developers and users halfway. " One modification...Apple needs to meet "their" developers and "their" users.

    "Certainly what Apple ships today is better than what Microsoft ships today."
    I'm not sure you want to go far as to compare 2 different OS architectures based on high res panel support alone. This is first and foremost a subjective discussion before an objective one.
  • ananduser - Sunday, June 24, 2012 - link

    Win8 has the best high res support of the market. It's completely panel agnostic(11 inch all the way to Ballmer's wall TV). It's easy to diminish W8, but it is more of a step forward than Apple's traditional "small steps" policy.
  • Spoony - Sunday, June 24, 2012 - link

    Only in Metro mode.

    In "old-style desktop" mode it exhibits the same problems as Win7. So it will require developer effort in the same way Mac OS X will.

    Windows 8 is well known to produce very polar reactions. The direction and momentum of Metro development is highly questionable right now. There are a lot of unanswered questions and not a lot of trust in Microsoft's path.

    On the flip-side, Apple is shipping a high-res hardware product today with a clear and well known path to high-res execution today. They have a defined timeline to their next OS and a price tag attached. Everything is a known quantity here, and developer support is strong.

    Windows 8 will be released in the fall sometime with a presently unknown price and an unknown vector to high-res asset curation.

    This is not a post bashing Microsoft or adoring Apple (none of them were). I am plainly stating the way that two different companies have tackled a very complex issue at this moment in time. I deeply hope that Microsoft, Apple, Linux, and 3rd party developers all put forward competitive support for high resolution displays because they are the future, and I'd like to enjoy them.
  • ananduser - Sunday, June 24, 2012 - link

    "Everything is a known quantity here." Apple's biggest advantage.

    "I deeply hope that Microsoft, Apple, Linux, and 3rd party developers all put forward competitive support for high resolution displays" The potential issue is that they all put competitive efforts but different efforts. Each one goes their own way.
  • wendoman - Saturday, June 23, 2012 - link

    That's why Intel QuickSync doesnt work on Mac's? LOL
  • Spoony - Saturday, June 23, 2012 - link

    "High-performance H.264 encoding3
    When you select a standard HD export setting, QuickTime Player takes advantage of hardware video encoding for optimal performance."

    "Supported on the following Mac models: iMac (Mid 2011 or newer), Mac mini (Mid 2011 or newer), MacBook Air (Mid 2011 or newer), and MacBook Pro (Early 2011 or newer)."

    http://www.apple.com/osx/whats-new/features.html

    Apple does things when they're good and ready (for better or worse), and by the looks of things with Mountain Lion they're exposing QuickSync underneath AVFoundation or QTKit.

Log in

Don't have an account? Sign up now