MacBook Pro Retina graphic performance issues & fix

Edit, about 21 months later, since I notice a lot of folks still arriving at this page from search engines:  Apple eventually fixed the issue I report in this post via a firmware update, more than a year ago.  I’ve seen no recurrence of the problem I mention above since then, and I’m still happily using the same laptop for much of my development work today.

As I mentioned a few months ago, I’ve been doing most of my Vectorstorm and MMORPG Tycoon 2 development on a Macbook Pro Retina.  In general, it has been a very good experience.

Caveats:

  • The keyboard, like all laptop keyboards, is really not appropriate for serious programming.  I use a Happy Hacking Pro 2 keyboard, instead (which fits exactly on top of the laptop’s built-in keyboard).
  • Xcode has been getting steadily less usable for non-Cocoa development since around version 3.2.  If you can possibly manage to do so, I recommend staying far away.  Myself, I use cmake for everything, to avoid monolithic IDEs that just seem to get huger, less stable, and more cluttered every year  (full disclosure:  I have the same complaint about Visual Studio since its version 6).
  • The trackpad, like all laptop trackpads, is only relevant for programming in that it picks up your wrist brushing over it while you’re typing.  This is another good reason for using a separate keyboard, to move your wrists away from that trackpad.

One of the nicest thing about the laptop is that its graphic performance is extremely good.  I can turn the resolution up to an absurd level (as you’ve seen in recent screenshots), and still run at a smooth frame rate.  But over the past week, I’ve had occasional days where the laptop’s performance has been staggeringly bad.  Bad enough that I could turn off all MMORPG Tycoon 2’s graphic effects, lower the resolution to 800×600, and it still ran a lot slower than it did with the effects on and a higher resolution on my old laptop (from 2007).  These bad days would happen at random, and the next day, everything would be fine.  But on that particular day, nothing would bring performance back;  rebooting, shutting down, being on or off mains power, etc.  Nothing seemed to make any difference.

And it wasn’t just MMORPG Tycoon 2 which was having performance problems;  this affected every non-trivial OpenGL application.  Running the Cinebench GPU benchmark suite, I normally get a score of 42-43 on this machine.  When things are being slow though, I only get scores around 14.  It’s a major difference.

Anyhow, I believe that today I finally found the fix;  resetting the laptop’s SMC (“System Management Controller”) immediately brought back normal GPU performance.  Apple’s instructions on how to reset the SMC are here.

I mention it just in case somebody else finds themselves suffering from the same problem;  there’s almost no discussion of this problem online.  (it’s perhaps unlikely that anyone else will know they’re suffering from this problem;  I wouldn’t have realised there was a problem at all, if I hadn’t been developing an OpenGL application and keeping screenshots which showed the timing of frame rendering, so I could have really good comparison points between good days and bad days).

Anyhow, a proper post tomorrow!