Postbox forcing discreet GPU (GeForce GT 650M) usage on MacBookPro - fix

Submitted by Janak on Thu, 01/31/2013 - 14:14

Postbox is a great mail client based on Thunderbird. I switched to it a few months ago, but I soon realised that it has a nasty habit of forcing the Discreet GPU on my MacBookPro (which eats up more battery power).

Does a mail client NEED more than HD4000 GPU? If so, WHY??

Apple documentation provide a detailed technical article into "Allowing OpenGL applications to utilize the integrated GPU" here: http://developer.apple.com/library/mac/#qa/qa1734/_index.html#//apple_r….

Starting with Mac OS X Lion, you may choose to run your OpenGL application on the integrated GPU on the Early 2011 MacBook Pros.

By default, once your application creates an OpenGL context (by either calling OpenGL directly or an API that relies on OpenGL such as Core Animation, Core Image, etc), the MacBook Pro automatically switches to the higher-end discrete GPU for performance concerns and won't switch back until the application quits. On Mac OS X 10.6 and earlier, you are not allowed to choose to run on the integrated GPU instead. Starting with Mac OS X Lion, you may utilize the integrated GPU on the Early 2011 MacBook Pros if you want to, for example, to save battery life.

On Mac OS X Lion and later, there is a new attribute called NSSupportsAutomaticGraphicsSwitching. To allow your OpenGL application to utilize the integrated GPU, you must add in the Info.plist of your application this key with a Boolean value of true

Anyhow, if you hate the issue as much and insist on using Postbox as your mail client, here is a quick fix to prevent this strange behaviour. We are going to be adding the NSSupportsAutomaticGraphicsSwitching to the info.plist file..

Edit Postbox application info.plist file

I am using VIM, but feel free to open this in your favorite text editor

vim /Applications/Postbox.app/Contents/Info.plist

FIND

  <key>NSHighResolutionCapable</key>
  <true/>

ADD After

  <key>NSSupportsAutomaticGraphicsSwitching</key>
  <true/>

Final code looks like this

  <key>NSHighResolutionCapable</key>
  <true/>
  <key>NSSupportsAutomaticGraphicsSwitching</key>
  <true/>
</dict>
</plist>

Save and relaunch the application