Apple’s top end MacBook Pros come with two graphics chips: an integrated Intel Iris Pro chip and a discrete graphics card with more power. That way, you can use the integrated chip when you need better battery life, and the more powerful graphics card when you’re editing video or playing games.
Apple has obviously thought of this, and which graphics card you’re computer is using is determined by a dynamic switching algorithm. If you don’t need the performance of the discrete GPU, macOS keeps it turned off. Unfortunately, some apps hijack the discrete GPU.
For example, I’ve found that for some completely ridiculous reason, RescueTime’s background tracking deamon forces the discrete GPU to run. You can see in the screenshot below that it’s one of the “Apps Using Significant Energy”.
Now Photoshop using the GPU is understandable, but RescueTime? It’s a small background process that records what app I’m using. There is literally no graphical component. All it’s doing is draining my Mac’s battery life. That’s quite ironic for a productivity app.
The solution I’ve found to this is to use a small menu bar app called gfxCardStatus. It serves two purposes:
- It lets you know which graphics card your Mac is currently using.
- It can force your Mac to use integrated or discrete graphics.
To get started, download gfxCardStatus, drag the app to your Applications folder, and run it.
It will start running in your menu bar. When the integrated graphics is running, the icon is a little “i”. In the screenshot below, it’s the second app in from the left.
When the discrete graphics is running, the icon is a “d”. Whenever your Mac switches between them, gfxCardStatus will notify you.
When the discrete graphics are in use, gfxCardStatus’s menubar app will tell you what apps are currently requiring it under Dependencies. Right now, for me, no apps need it.
By default, gfxCardStatus leaves macOS’s dynamic switching algorithm running. If you want to force it to use one or other of the graphics cards, click on the menu bar icon and select either Integrated Only or Discrete Only.
To switch back to dynamic switching, select Dynamic Switching.
If you try to switch to integrated graphics when an app that requires the discrete GPU is running, gfxCardStatus will throw up a warning.
There isn’t much to configure with gfxCardStatus. It just sits in the background doing its own thing. To make sure it runs at startup, select Preferences and then check Load gfxCardStatus at startup.
Smart menu bar icons change the letters to represent the actual graphics card that is running. For example, my Mac has an AMD card, so with smart icons on, the icon is an “a” when it’s using discrete graphics.
gfxCardStatus is a really handy way to keep tabs on what your Mac is doing automatically. I prefer to keep it set to the Dynamic Switching algorithm and only when I’m trying to conserve battery life, force my Mac to use integrated graphics.
If you’re experiencing bad battery life on your Mac, check out gfxCardStatus. Even if it can’t fix the problem, it will give you a good idea of what’s causing it.