GPU switching

Discussion in 'MacBook Pro' started by LukaStellwag, Oct 26, 2011.

  1. LukaStellwag macrumors newbie

    Joined:
    Mar 10, 2011
    #1
    Hi there,

    I have a Early 2011 MBP 2.2 Ghz i7 with the 6750 AMD GPU. However, I find it to suck too much battery and I never need it so I use gfxCardStatus to turn it off while on the road. MacOS does a horrible job deciding which GPU to use, even skype triggers the change.

    So... When I come home, I switch to discrete GPU only and when I leave home again, I'll set it to integrated.

    However, I found when I was using my Mac at home for a while and change the GPU from discrete to integrated, the battery life will stay at 3-4 hours in idle, so it didn't really switch gpus. The only thing that helps here is a restart, which is SUPER annoying.

    Anyone else found a better solution for my problem?
     
  2. mape2k macrumors regular

    Joined:
    Apr 18, 2011
    Location:
    Germany
    #2
    1. Mac OSX does not decide which GPU to use, Skype forces it. So actually, Skype is horribly coded for Mac OSX (Same goes for Firefox, which forces the discrete as well for nor apparent reason).

    2. What is gfxCardStatus displaying? Does it switch back to discrete when you are trying to force integrated or are you just assuming it's displaying wrong values?
     
  3. LukaStellwag thread starter macrumors newbie

    Joined:
    Mar 10, 2011
    #3
    Ok, but that doesn't really help because even Chrome triggers the other gpu, I think this is due to these apps require the core animation framework, but I don't know exactly.

    2. gfxCardStatus is set to manual, so I tell it what GPU to use. Of course it shows "i" like integrated then.

    Thx for your quick reply.
     
  4. mape2k macrumors regular

    Joined:
    Apr 18, 2011
    Location:
    Germany
    #4
    Yep, Chrome forces discrete as well.

    What state do you leave your MBP when you travel with it (e.g. in your bag)? Do you put it to sleep, or turn it off? That could cause the GPUs to get switched again. However, the icon from gfxCardStatus should always be correct and show you which GPU is used.

    What I do: Dynamic swichting while on AC, integrated only while on battery (automatically set with gfxCardStatus). Works like a charm! ;)
     
  5. wikus macrumors 68000

    wikus

    Joined:
    Jun 1, 2011
    Location:
    Planet earth.
    #5
    I wish apple released a fix for the blue screen people are getting when quitting firefox (due to graphics switching).
     
  6. dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #6
    That is simply not true. Skype or FF using some GPU acc. framework is a smart thing to do. In theory it helps to get more fluent UIs and keep CPU usage low. Apples idiotic implementation just switches always when such a framework is loaded. Even if it is only used for some feature that you aren't actually using. Say a mediaplayer has a visualizer like itunes and loads the necessary frameworks at startup it will cause a GPU switch even the though you might never ever use those visualizers. Or the framework is only used as in case of Skype, Chrome, .. to an extent that the IGP is perfectly fine with.
    Apple has a Whitelist for its own Apps like Safari but refuses to offer an open one where other Apps like Chrome can exclude themselves. No they should revert to different programming to make them look worse than Safari in benchmarks.

    Also and here might be the Ops problem the switching only looks smooth but it only sort of works. When you launch iphoto on dGPU and switch to the iGPU animations get really slow (probably loads of software involved). When you launch iphoto with the forced iGPU animations are smooth thus it is not an iGPU performance thing. Just that they don't seem to be able to port everything to the different GPU like Optimus Nvidia drivers can do.
    I learned that you usually should relaunch applications after switching the GPU. Because if you don't the added CPU load might eat up all the gains from shutting of the dGPU.
    At least on my 2010 15" that is the case.

    I always force the iGPU on OSX unless I need my external screen at home in which case I only stick to the dGPU. My iGPU is still half as fast than the Sandy Bridge GPU but it is plenty fast for everything I do in OSX (when the apps are launched with this GPU forced). It also keeps noise and heat down.
    dGPU is for external screens and Windows only in my usage.
     
  7. mape2k macrumors regular

    Joined:
    Apr 18, 2011
    Location:
    Germany
    #7
    I stand corrected then.
    But if iTunes and Safari can do it, why can't Skype and others call for discrete GPU only when necessary?
     
  8. MVRL, Oct 26, 2011
    Last edited: Oct 26, 2011

    MVRL macrumors regular

    MVRL

    Joined:
    Oct 17, 2011
    #8
    ........

    did u really jusk ask why Macs run Apple software better than 3rd party ones??

    Cuz Apple supports in-house software first....duh??

    If Skype is Apple software, I'm sure it would be just like itunes..
     
  9. mape2k macrumors regular

    Joined:
    Apr 18, 2011
    Location:
    Germany
    #9
    I really just asked why 3rd party software is not able to call only discrete when necessary. That should not be such a huge issue, if proper care is taken while programming these applications. Of course Apple knows OSX better than any other software developing company, but that doesn't mean that 3rd party programs always run slower than Apple applications.
    Some 3rd party software does the GPU switching just fine (e.g. ViewNX by Nikon). It also runs much faster than iPhoto! Imagine that!
     
  10. dusk007 macrumors 68040

    dusk007

    Joined:
    Dec 5, 2009
    #10
    I honestly don't know. I can imagine a few implementations that would easily correct the flaws and still be simple.
    Their primary goal was probably to make it fool proof and they didn't have any secondary goals because all they want you to run is Apple software.
    Safari uses the same frameworks it just is internally on a whitelist that says I don't need the dGPU. They switch the dGPU on just in case for just about anything else that might possibly need it. A simple solution would be to open the whitelist to everybody so a 3rd party app could write itself on it.
    I am guessing the problem was with their multiplexing driver implementation. Apps often need to restart to really work properly and an App that only needs the dGPU for very few situations might still launch with it active (like Chrome for a Browser game). No win here.
    I guess the switching is (the way they do it) quite complex has quite some troubles and that is why they don't want the GPU to switch while an App is running if it is using some libraries. They fixed their own apps which might reload some frameworks but it would be too difficult for the avg app dev. Ergo they just didn't allow it.

    I hope they will change their mind and get an Proxy solution like it is with Optimus. It helps battery life a lot more and does much better on average only with the dGPU it needs slightly more power. I would take that before all the other shortcomings.

    A Optimus driver is a complex thing (Nvidia nor AMD wrote one for OSX yet) and they worked on their own solution and at the time they figured out, it isn't all that rosy, it was too late. They probably thought they would solve the problems in time and where mistaken.
     
  11. wikus macrumors 68000

    wikus

    Joined:
    Jun 1, 2011
    Location:
    Planet earth.
    #11
    Perhaps THIS is the bug found in macbooks when switching gpus? I OFTEN get a bluescreen when I quit firefox.

    I hope either apple or firefox come up with a fix. its very annoying, especially since im in web development now. grrrr....
     
  12. grahamnp macrumors 6502a

    Joined:
    Jun 4, 2008
    #12
    Battery life isn't really an indicator of which GPU is in use. If you go to About This Mac -> System Report, it should tell you which GPU is in use. I don't find the 6750 to be a huge drain on battery life, it is worse for sure, but not significantly.
     

Share This Page