Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
So uhh..what are the chances that a firmware update would give us user control over the switching of the GPUs? :eek:
 
It's disappointing to hear about the 'dumb' switching Apple seems to be using. Because it's based on API calls, it sounds like it automatically kicks it into using the 330M as soon as anything requests to use a GPU and it won't switch back until that application quits. I can only assume this was done to simplify things so the user never has to know what is happening.

It's quite concerning to hear that if you load up a quicktime video in the browser, it will switch to the 330M and will only go back to the Intel graphics when you quit the browser entirely rather than stopping the video or closing/switching the tab.

I've seen demos of nVidia's Optimus technology on Windows and it looks like it works much better there. With flash video (yes, it's hardware accelerated on Windows, you have Apple to thank for the poor performance on OSX) it will activate the dedicated GPU for playback and when you switch/close the tab, it instantly goes back to the integrated graphics without having to close the entire browser. You are also able to set an application list as well if you want to force it to use the GPU or disable it with some applications where the Intel graphics will handle things just fine.


I would have thought the best solution would be to have the autodetection it uses now, but allow the user to override it. Ideally I would like to see:
  1. A global override setting that can be set in the energy saver preferences. This would let you choose Auto/Intel/nVidia depending on whether it is running off the mains or battery power. It would be nice to have quick access to this via the menu bar - add it as a sub menu to the battery status.
  2. Per-application settings. I'm imagining a preference pane similar to the spaces preferences. This would still let you take advantage of the automatic GPU switching, but let you force it off for applications that are 'misbehaving' and enabling the GPU when you don't want/need it, or give you the option to force it on when you do. (though it seems like the main problem is that it's too eager to use the 330M when it may not be necessary)
  3. It would also be good if this preference could be set based on whether the application is in the foreground or background. You shouldn't have to quit applications to go back to the Intel graphics. (I tend to leave Photoshop/Lightroom open all the time because they take a while to open for example) Or is this a bigger problem where you can't take programs 'off' the nVidia GPU once they're using it?
What I hope is the case, is that Apple have given developers the ability to set whether or not their program uses the integrated graphics even if it uses API calls that would trigger the 330M but does not do anything the Intel graphics can't handle, and that we will see updates to programs that will fix this. It would also be nice if updated programs will be able to tell OSX whether or not they still need to use the GPU when they are in the background. Something using the GPU for video encoding would still need it for example, but other applications may only need it when they are active.


At the very least, I hope Apple will add a manual override to the energy saver preferences and its menu bar item. On the battery, you may want to force Intel graphics to extend battery life, even if it means degraded performance.
 
It's disappointing to hear about the 'dumb' switching Apple seems to be using. Because it's based on API calls, it sounds like it automatically kicks it into using the 330M as soon as anything requests to use a GPU and it won't switch back until that application quits. I can only assume this was done to simplify things so the user never has to know what is happening.

It's quite concerning to hear that if you load up a quicktime video in the browser, it will switch to the 330M and will only go back to the Intel graphics when you quit the browser entirely rather than stopping the video or closing/switching the tab.

I've seen demos of nVidia's Optimus technology on Windows and it looks like it works much better there. With flash video (yes, it's hardware accelerated on Windows, you have Apple to thank for the poor performance on OSX) it will activate the dedicated GPU for playback and when you switch/close the tab, it instantly goes back to the integrated graphics without having to close the entire browser. You are also able to set an application list as well if you want to force it to use the GPU or disable it with some applications where the Intel graphics will handle things just fine.


I would have thought the best solution would be to have the autodetection it uses now, but allow the user to override it. Ideally I would like to see:
  1. A global override setting that can be set in the energy saver preferences. This would let you choose Auto/Intel/nVidia depending on whether it is running off the mains or battery power. It would be nice to have quick access to this via the menu bar - add it as a sub menu to the battery status.
  2. Per-application settings. I'm imagining a preference pane similar to the spaces preferences. This would still let you take advantage of the automatic GPU switching, but let you force it off for applications that are 'misbehaving' and enabling the GPU when you don't want/need it, or give you the option to force it on when you do. (though it seems like the main problem is that it's too eager to use the 330M when it may not be necessary)
  3. It would also be good if this preference could be set based on whether the application is in the foreground or background. You shouldn't have to quit applications to go back to the Intel graphics. (I tend to leave Photoshop/Lightroom open all the time because they take a while to open for example) Or is this a bigger problem where you can't take programs 'off' the nVidia GPU once they're using it?
What I hope is the case, is that Apple have given developers the ability to set whether or not their program uses the integrated graphics even if it uses API calls that would trigger the 330M but does not do anything the Intel graphics can't handle, and that we will see updates to programs that will fix this. It would also be nice if updated programs will be able to tell OSX whether or not they still need to use the GPU when they are in the background. Something using the GPU for video encoding would still need it for example, but other applications may only need it when they are active.


At the very least, I hope Apple will add a manual override to the energy saver preferences and its menu bar item. On the battery, you may want to force Intel graphics to extend battery life, even if it means degraded performance.

All great suggestions. You should send Apple feedback! :)
 
Interestingly enough, my MBP never seems to switch to built-in. I've pulled it off the charger and shut down every app other than system profiler, but the discrete GPU still runs. Has anyone else experienced this?

2.66 i7 | 8GB RAM
 
Hmmm, that's annoying. I really hope there's some way to force the use of just Intel HD graphics when on battery power.

There is an option to de-select "automatic graphics switching" in the Energy Saver preference pane. EDIT: nevermind. Disabling this will always use the discrete graphics. Durr.

That sucks if this is the case for Tweetie activating the 330M. However, I had System Profiler open, along with Tweetie (among other things), and closing Tweetie and refreshing Profiler, I was still using the 330M. I couldn't make it switch back. Maybe thing else I have open was utilizing the graphics card but that seems unlikely. I am on battery power at the moment.
 
Interestingly enough, my MBP never seems to switch to built-in. I've pulled it off the charger and shut down every app other than system profiler, but the discrete GPU still runs. Has anyone else experienced this?

2.66 i7 | 8GB RAM

Yea, I have noticed a few occasions where I cant get off of the 330m without either logging out or rebooting.
 
Yea, I have noticed a few occasions where I cant get off of the 330m without either logging out or rebooting.

I tried rebooting twice, but it looks like it keeps booting with the discrete GPU active! Either that or TextExpander 3, Launchbar or Fresh (the three apps that launch on login) cause it to go into discrete mode, though I can't see how the hell that could be.

This is annoying. I really don't want a discrete GPU running if I'm not doing anything!
:mad:
 
I tried rebooting twice, but it looks like it keeps booting with the discrete GPU active! Either that or TextExpander 3, Launchbar or Fresh (the three apps that launch on login) cause it to go into discrete mode, though I can't see how the hell that could be.

This is annoying. I really don't want a discrete GPU running if I'm not doing anything!
:mad:

Make sure that Automatic graphics switching is enabled in the Energy Saver preference pane.

If thats not it.. then I have no clue.
 
Make sure that Automatic graphics switching is enabled in the Energy Saver preference pane.

It is. I went so far as to change display settings (I have the hi-res). . . anything I could think of. Nothing has worked.
 
I'm using MagicPrefs for my Magic Mouse and it causes the 330m to always be on. I was wondering why my battery usage was so poor compared to what Apple was stating I should get. This seems to be why.

I agree that it really would be nice if they could give us more control over the switching. But considering I have to use Magic Mouse to make the best use of my multi-touch mouse, I am not holding my breath. Hopefully there are APIs that can be used by a third party developer to give us something useful.
 
It sounds like Apples GPU switching is going to be causing a big head ache for a whole lot of developers..
 
I'm using MagicPrefs for my Magic Mouse and it causes the 330m to always be on. I was wondering why my battery usage was so poor compared to what Apple was stating I should get. This seems to be why.

I wonder why something like MagicPrefs would be causing the 330m to be on? I wasn't using MagicPrefs, yet I was still seeing the 330m on. I had all apps closed, yet I had iStat menus, PasteBot, CloudApp, and Droplr running in the menu bar. I wonder if those could be causing it too?

Could the temperature sensors used by iStat menus be causing the graphics card to be on? I would test this, but I'm calibrating my battery right now, and don't want to unplug my Mac at the moment.
 
I wonder why something like MagicPrefs would be causing the 330m to be on? I wasn't using MagicPrefs, yet I was still seeing the 330m on. I had all apps closed, yet I had iStat menus, PasteBot, CloudApp, and Droplr running in the menu bar. I wonder if those could be causing it?

Could the temperature sensors used by iStat menus be causing the graphics card to be on? I would test this, but I'm calibrating my battery right now, and don't want to unplug my Mac at the moment.

I don't think its iStat. Right now I am plugged in and have a few applications open, including iStat and iStat Menus and I am on the Intel GPU.
 
I don't think its iStat. Right now I am plugged in and have a few applications open, including iStat and iStat Menus and I am on the Intel GPU.

Hmm, okay. Does anyone know if Tweetie uses any fancy graphics (i.e. how the app animations look smooth, like double-clicking on tweets, etc)? I wonder if some other apps do this as well (Droplr I know has a nice animated popup window). However, this seems highly unlikely, as I used these apps on my old MacBook with no problem and the animations looked fine without a discrete graphics card.

I'm just trying to through ideas out there.
 
iPhone 2Do Helper App Also Causes Discrete Graphics

I just noticed that the 2Do iPhone helper app ToDoHelper that runs on the mac also causes the discrete graphics to always stay on.

Love v1.0 tech!
 
I wonder why something like MagicPrefs would be causing the 330m to be on? I wasn't using MagicPrefs, yet I was still seeing the 330m on. I had all apps closed, yet I had iStat menus, PasteBot, CloudApp, and Droplr running in the menu bar. I wonder if those could be causing it too?

Could the temperature sensors used by iStat menus be causing the graphics card to be on? I would test this, but I'm calibrating my battery right now, and don't want to unplug my Mac at the moment.

Yeah, I don't know what MagicPrefs is using that would cause the discrete graphics adapter to be enabled. I know their preferences panel uses some fancy graphics, but nothing requiring the 330m. I suspect it has something to do with libraries they are linking too or an API call they are using. I even removed the icon from the task bar and it didn't help.

I'd suggest just closing things until you figure out which one is causing it and then try contacting the developer. Maybe they will try and fix it. I guess for now I will need to quit MagicPrefs if I want to conserve battery.
 
After reading that Engadget posted a few replies ago, I have a feeling that something to do with Core Image or Core Animation might have something to do with it. Perhaps those "fancy graphics" from the preference panel or graphics from Tweetie call on Core Animation to display a smooth transition/animation? Maybe Apple has it that anything that calls even the most basic use of Core Image/Animation will activate the 330M?

Disclosure: I am not a developer. :rolleyes:
 
Spotted this in System Profiler...

V08yx.png


So, I happened to look in the Power info in System Profiler and noticed that "GPUSwitch" is set to "2" on both AC Power and Battery Power. Now, this info should show the settings I have selected in Energy Saver (i.e. it does show that I have disabled "wake on LAN" for when I'm on AC Power).

Assuming that the "GPUSwitch" setting of 2 means to enable the 330M, as when on AC Power, the 330M should be enabled all the time (correct?). It appears that even when on battery power, the GPU is set to 2, and thus being enabled all the time?

Does this mean that there is some .plist file that can be manipulated with a handy Terminal command to change it to setting of "1" or something that might enable on-the-fly manual switching of the graphics card? I don't know how to go about finding these types of cool Terminal tricks I see all over the place.
 
Stuck on 330m

My MBP also seems to be stuck on using the 330M. I have graphics switching enabled and have tried logging in and out as well as rebooting several times. No applications running and no startup items. My battery life has seemed shorter than Apple claims ever since I bought it last week but I didnt think much of it until I came across this thread. I saw some other people were having this problem. Any suggestions?
 
After reading that Engadget posted a few replies ago, I have a feeling that something to do with Core Image or Core Animation might have something to do with it. Perhaps those "fancy graphics" from the preference panel or graphics from Tweetie call on Core Animation to display a smooth transition/animation? Maybe Apple has it that anything that calls even the most basic use of Core Image/Animation will activate the 330M?

Disclosure: I am not a developer. :rolleyes:

It is because of that IF the application uses those specific framework/API. If any application uses and frameworks like OpenGL, Core Graphics, Quartz Composer or it will cause the OS to trigger the discrete GPU.

Optimus seems to be way better having a set list of applications to switch. Of course Apple won't implement this since they like having so much control...
 
V08yx.png


So, I happened to look in the Power info in System Profiler and noticed that "GPUSwitch" is set to "2" on both AC Power and Battery Power. Now, this info should show the settings I have selected in Energy Saver (i.e. it does show that I have disabled "wake on LAN" for when I'm on AC Power).
Interesting - you probably can force it to one or the other via the terminal.

I would try three things:
  1. In a terminal window, run:
    pmset -g

    And see if there is anything relating to the GPU mentioned. (I suspect there might be) Don't worry, this isn't going to change anything, it just brings up a list of the current power saving settings.
  2. If there is anything relating to the GPU, try changing the setting in energy saver to only use the 330M and run it again to see what value it is at now.
  3. If there is something that sounds GPU related, in terminal, run:
    man pmset

    To bring up the documentation for pmset to see if it's been updated and if it tells you the possible values for the GPU setting if one exists. (it will bring up a big list like this)
If I had to guess, I would expect to see:

gpuswitch: 2 in the list when you enter pmset -g in the terminal window, and the possible values are probably 0/1/2 with 0 being Integrated, 1 being Dedicated and 2 being Autoswitching.

But this is pure speculation and I wouldn't change anything without knowing.

If that is the case though, you should be able to force it into using the Intel graphics on the battery and 330M or Autoswitching when connected to the mains.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.