I believe I have a pretty good idea of what might be causing the insane battery drain some users (including myself) have been experiencing with the 2016 MacBook Pro.
Here's my theory:
If the dGPU kicks on at any point, it silently runs in the background and doesn't switch back appropriately, even though the OS reports the integrated GPU as being in use. This is solved if you put the computer to sleep for a few seconds, then wake it up (assuming no dGPU apps are open).
Steps to reproduce:
While running on battery and iGPU, open a dGPU app (I use Photoshop). Wait a few minutes. Close dGPU app. OS reports GPU in use as the iGPU now (in Activity monitor) and energy usage reports look normal. However, computer temperature will be running higher than normal (~55°c instead of ~30°c ) and battery will rocket down. Leave for an hour and observe battery state - you'll notice your battery has drained significantly (for me, around 30%). Now put the computer to sleep, wait 10 seconds, then wake up again. Temperature will begin to drop significantly and quickly - the iGPU is now actually being used. Leave for an hour again, and observe how the battery no longer drains anywhere near as quickly.
So, the solution for now (at least in my case) is to make sure to put the laptop to sleep for a few seconds after switching back from the dGPU.
I believe the inconsistent user reports are simply due to some users never actually triggering the dGPU (or having models that don't have a dGPU), vs others that do trigger it in their tests and hit the bug.
Perhaps some more people can test this to corroborate? 🙂
