Max battery usage on MacOS


    Aug 26 2020 | 3:08 pm
    Hi everyone. I've noticed before that having the Max application opened, even with no patch loaded was having a significant effect on my 2018 15" MacBook Pro's battery life.
    Checking the Energy tab of Activity Monitor, I've noticed that:
    • When initially opened, with no patches loaded Max doesn't report the use of the High-Performance (discrete) GPU and, when using only MIDI/MSP or even Jitter matrices (CPU), the configuration is maintained. Nice.
    • As soon as a patch incuding Jitter/OpenGL objects is loaded, Activity Monitor reports that Max is using the high-performance (discrete) GPU. Great!
    • After closing the Jitter/OpenGL patch, Max maintains the high-performance GPU flag indefinitely, even if subsequent opened patches don't make any use of OpenGL resources, or even if there are no patches loaded. Only quitting and restarting Max returns it to the initial configuration.
    Is there anything that can be done towards this problem? Besides having an adverse effect on battery autonomy, the MacBook Pro gets hotter, the fans may start spinning louder and sooner, and the computer component's life may be decreased.
    As anyone noticed it before? Thanks in advance.

    • Aug 26 2020 | 3:39 pm
      I haven't looked especially at the GPU usage, but even with no patch open, it's my understanding that the Max scheduler is doing something, thus drawing on the battery. I have the habit of quitting Max when on battery and not using it. When it comes to the GPU switch, it would be interesting to know if the wrong behavior is on Max or on the OS.
    • Aug 27 2020 | 11:25 am
      Hi Jean-Francois. Yes, I've noticed it too and have the same habit as you. The thing is, besides tat residual CPU consumption of Max when opened, it forces the MacBook Pro to keep using the dedicated graphics card, even if it isn't actually needed, draining the battery much faster... Regarding the eventual culprit, I can't be sure, but I think it's Max because of the following: It's only when the first jitter object is used (e.g, jit.world) that the GPU flag changes. If you open the Max console, you notice the "gl2/gl3 engine loaded" message. If you close the patch and do it again, that message doesn't repeat, meaning that, once loaded, Max never "frees" the OpenGL resources. I might be wrong, though...
      Now, even if we assume it is Max's fault, it might be difficult or impossible to fix its behaviour without complex changes, I don't know...