from geometry to pixels

Is the GPU of the 13″ Retina MacBook Pro too weak?

When Apple can first out with ‘retina’ (high resolution) displays for there Macs the big 15″ notebooks were upgraded first, not the smaller 11″ – 13″ ones. At first you wonder why, as it is probably simpler to build smaller displays with high dpi. But on second thought you realise, that you need a good GPU to drive those displays. So I was quite surprised, that the new 13″ Retina MacBook Pro only comes with an embedded HD4000.

While the Intel HD4000 is ok for small notebooks and appropriate for normal desktop use, it has one problem when it comes to large displays: The shared memory bus with the CPU. An Intel Core i5 3210M as well as the Core i7 3520M (the two options available for the 13″ MBP) have a memory bandwidth of 25.6 GB/s (that’s gigabyte calculated as base 10; ~23.8GiB/s in base 2). The bandwidth is shared between CPU and GPU: the more the HD4000 needs, the less the CPU has to work with. If we want an ideal 60Hz refresh rate, that’s 407 MiB/frame memory transfer budget.

A fullscreen image in 4 byte per pixel RGBA requires 2560 * 1600 * 4 = 15.6 MiB, in RGB 11.7 MiB. If a power user opens up a dozen windows, each covering roughly half the screen (some finder, terminal etc. windows) as well as 3 fullscreen apps and starts exposé (which will force each of them to be rendered), this will require at least 12 * 0.5 * 11.7 MiB + 4 * 11.7 MiB (the additional fullscreen texture is the desktop) = 117 MiB. Note that the windows can be scattered over multiple virtual desktops as all of those are rendered in exposé. This does not even account for bandwidth needed to create real-time renderings of these windows! Also, windows on OSX have rounded corners and shadows so we might have to assuming RGBA (156 MiB in this example)…

High-DPI as implemented by Apple adds another challenge: In the native ‘double resolution’ mode the 2560*1600 display behaves as a super sharp 1280*800 display. This means that the UI elements might be to large for your taste and you want to use more of the pixels available (as you still see the same desktop and windows as on your old 1280*800 Mac but with sharper text, images etc.). For this, you can change the 2x mode down to 1.5x, so the display behaves as a (slightly less sharp) 1920*1200 screen. Sounds great but the implementation has one flaw: To make it simpler to support the new retina displays, applications don’t have to support five different zoom modes, but just two: 1x and 2x (and if they don’t even support 2x, as old apps do, MacOS X will just pixel-double the window). So internally the 1.5x display has to be rendered in twice the virtual resolution: 3840*2400 and is then downscaled to 2560*1600. Each fullscreen window would then consume 26.3 MiB (RGB) / 35.1 MiB (RGBA) – more that twice the memory and bandwidth requirements than needed for the 2x mode… (we can also see here, why the retina MBP have 8GB RAM as a minimum…).

A couple of windows can quickly eat a significant amount of memory bandwidth and reduces what the CPU can work with dramatically. Even worse with an additional external display and/or other zoom modes.

If anyone has access to a retina 13″ or 15″ (forced to use the HD4000 instead of the GeForce), I would be interested in real life experiences of the behaviour of the user interface influenced by memory hungry applications and performance changes of such apps while working with lots of windows.

, ,

8 thoughts on “Is the GPU of the 13″ Retina MacBook Pro too weak?
  • Jens Fursund says:

    I would say yes. My experience with running at full res on Retina Macbook Pro 15″ with Intel HD4000 is less than optimal tbh.

  • oSIRus says:

    I got the new Mac mini equipped with 16GB of RAM and the HD 4000 graphics. At 4GB RAM the HD4000 got 512MB dedicated, at 16GB RAM it gets 768MB.

    But even at my monitors native resolution of 1920×1080 with no other display attached, UI animations, especially mission control are not very fluid.

    My old 2009 iMac with Radeon 2600 pro graphics is much more fluent.

    Probably sending it back …

    • Robert says:

      I wouldn’t expect so much problems at just FullHD resolution. The 2012 MacBook Air also has a HD4000 running at 1440*900 and I see no problems here.

  • ChristianSchröder says:

    The graphic perfomence of the retina model (13 and 15) is an assurance from Apple !!!

  • Ejnar says:

    So, this article was written about a year ago, and we currently have new Haswell rMBPs.

    I’m considering buying the 13 inch model, and while researching about it I stumbled upon your blog.

    The HD5100 still has the same bandwidth as the HD4000, although it is faster. The HD5200 has 128 MB eDRAM at its disposal, but this chip is only featured in the 15″ model (more info:

    I was wondering if you have any new insights on this matter. Do you think it would be unwise to buy the 13″, opting for the 15″ instead?

    Thank you!

    • Robert says:

      If you need a power horse that runs memory intense applications while having lots(!) of windows open, the HD graphics on retina displays are not the first option to look at. However, if you need a solid Mac in a small form factor, the 13″ should be ok.

      IMHO the size difference between a 15″ and a 13″ matters a lot when carrying the machine around and will most likely be a bigger difference on a day-to-day basis than the GPU.

  • Rickie says:

    Very interesting article!!

    I’m interested in late 2013 macbook pro 13″ (intel hd 5100/iris)
    But I’ve seen several comment saying there is ui lag *again*.

    So is it because intel hd5100 is not capable to handle retina display same as previous generation or is it because of bug in maverick?

    Thanks man..
    btw using question (red, green) to avoid too many question and spam is interesting method :D

    • Robert says:

      For normal (office) use the hd5100 should be sufficient and fast enough that the UI doesn’t lag. However, IMHO Apple could make better “retina” notebooks if they would put in dedicated GPUs to make them perform better under load…

Leave a Reply

Your email address will not be published. Required fields are marked *

Warning: Illegal string offset 'q' in /homepages/36/d405284044/htdocs/rpblog/wp-content/plugins/quiz/quiz.php on line 60

Warning: Illegal string offset 'a' in /homepages/36/d405284044/htdocs/rpblog/wp-content/plugins/quiz/quiz.php on line 61

Warning: Illegal string offset 'q' in /homepages/36/d405284044/htdocs/rpblog/wp-content/plugins/quiz/quiz.php on line 179