Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

My lord...better move to a VPS stat. :D That's sweet!!!

hockey9999 said:
Another story about gfxCardStatus, albeit on 9to5mac..

http://www.9to5mac.com/gfxCardStatus...ntelligence)

Nice! Man now I just need to wait to get dugg and slashdotted...my server is weeping. x.x

edere said:
great little program! it helped me figure out why my MBP was always using the Nvidia GPU. turns out the culprit was Showcase interface plug-in for Quicksilver. it's too bad cause i love the plug-ing, but i love a longer battery life even more.

Thanks! I'm glad it helped you hunt down the offending application. :)
 
Cody,

I forked your github and implemented ah's new code. I added the capability to force Intel, force nvidia, or enable dynamic switching. Feel free to take what I did and make an official version 1.7.

Also, I have attached an "unofficial" version 1.7 for those of you who want to be able to use ah's new code before Cody (bitninja) releases his official version. I recommend quitting version 1.6.1, removing it from startup, and restarting before using this version.

Let me know if I can help out anymore with gfxCardStatus :)

BTW, my fork is at http://github.com/smitterson/gfxCardStatus/
 

Attachments

  • gfxCardStatus.zip
    552.7 KB · Views: 159
Cody,

I forked your github and implemented ah's new code. I added the capability to force Intel, force nvidia, or enable dynamic switching. Feel free to take what I did and make an official version 1.7.

Also, I have attached an "unofficial" version 1.7 for those of you who want to be able to use ah's new code before Cody (bitninja) releases his official version. I recommend quitting version 1.6.1, removing it from startup, and restarting before using this version.

Let me know if I can help out anymore with gfxCardStatus :)

BTW, my fork is at http://github.com/smitterson/gfxCardStatus/

whooo! now all we need is a whitelist option that enables/disables these functions through app/system triggers
 
Cody,

I forked your github and implemented ah's new code. I added the capability to force Intel, force nvidia, or enable dynamic switching. Feel free to take what I did and make an official version 1.7.

Also, I have attached an "unofficial" version 1.7 for those of you who want to be able to use ah's new code before Cody (bitninja) releases his official version. I recommend quitting version 1.6.1, removing it from startup, and restarting before using this version.

Let me know if I can help out anymore with gfxCardStatus :)

BTW, my fork is at http://github.com/smitterson/gfxCardStatus/

Just sent you a message on GitHub before I saw your forum post! Thanks very much - I'll download and test your implementation and push out a v1.7 once I work in a couple of the other fixes I have had planned. :)

Cody
 
A followup to my earlier issue with Tweetie not showing its sidebar after switching: I rebooted my machine and gave it another try, and after switching to the intel gfx Path Finder's sidebar didn't disappear, and still worked. Tweetie's sidebar disappeared, but if I quit and restarted it, the sidebar reappeared and everything seemed okay.

My completely uninformed guess is the parts of a window that use Core Animation or CoreImage are buffered somewhere, and when you force the graphics change, the buffer location is lost (?) and that part of the window disappears.

I wonder if there's a way to force the OS to dump its window buffer - I assume there is, but I know more about speaking the language of dogs and cats than I do about cocoa, so, ignore me at will.

I noticed something like this as well, if you look at AppleGraphicsControl in ioregistryexplorer, there are two surface lists, one for the igd and the other for peg (dedicated). If an application uses OpenGL, you can see it in one of the lists.
Switching doesn't always cleanly transfer the surfaces to the other card and as long as there's still at least one surface the card stays powered on. If you quit the offending application and the surface list is then empty, the card switches off. Also, when one card is running with the surface still on the other, the performance takes quite a hit.
I guess the disappearing parts are similar to this, leftover surfaces that are lost when the dedicated gpu is powered off.

As for solving this problem, we probably should check that when we switch there won't be any surfaces left over on the second card and that probably means we can only switch when there are no bad applications running.

And please don't forget this is at most alpha-quality software and might seriously mess things up. Maybe after it's even on engadget now we need a really big disclaimer in gfxCardStatus.
 
As for solving this problem, we probably should check that when we switch there won't be any surfaces left over on the second card and that probably means we can only switch when there are no bad applications running.

Switching doesn't seem to affect certain things. For example, watch a 1080p youtube video and force switch to intel, there is just a slight pause in the video, but everything seems to be fine afterwards (note: I am testing this with the unofficial 1.7 build I made). Also, sometimes Google Chrome itself (not a helper process) becomes a dependent process. Forcing to intel doesn't seem to cause issues.
 
ahaha Cody is a celebrity. We should have gotten his autograph before he went Hollywood
 
I dont know if anyone has done any comparisons yet but I've ran Machinarium off the Intel videocard and it gets a little choppy. It's a Flash player based game.

Watched 1080p Youtube trailers with Adobe Gala and manually switched to Intel. Works great in window mode! I've never been able to get Gala to play in full screen and it doesn't work for me wither in Intel or Nvidia mode
 
My lord...better move to a VPS stat. :D That's sweet!!!



Nice! Man now I just need to wait to get dugg and slashdotted...my server is weeping. x.x



Thanks! I'm glad it helped you hunt down the offending application. :)
if you do happen to run into problems with a shared hosting acct let me know. nginx + memcache will handle any "digg effect" you throw at it, and i can have it up & running fast. and it'll run on a small vps

http://www.google.com/search?q=gfxc...=news_group&ct=title&resnum=1&ved=0CB0QsQQwAA

lol

Développé par Cody Krieger, le module gfxCardStatus qui vient se loger dans la barre de menu de Mac OS X permet de suivre l'utilisation qui est faite des ...
 
I dont know if anyone has done any comparisons yet but I've ran Machinarium off the Intel videocard and it gets a little choppy. It's a Flash player based game.

Watched 1080p Youtube trailers with Adobe Gala and manually switched to Intel. Works great in window mode! I've never been able to get Gala to play in full screen and it doesn't work for me wither in Intel or Nvidia mode



When you try to max gala flash does it end up as a white screen? Mine does that, also. But if you make it fullscreen while running in 320, then switch to 1080 while already in full screen it works.
 
This is going to be useful to very few people, I think, but Eudora forces a switch to discrete graphics. The dependent process listed is "LaunchCFMApp".

Thanks a bunch for gfxCardStatus. Very, very helpful.
 
I just saw this on twitter:
kohlschuetter Hey @codykrieger, #gfxCardStatus can also live-switch my two NVIDIA GPUs in my MacBookPro5,1 -- Thanks!!!

Could someone with access to an older unibody mbp with two gpus test the program in the attachment? It changes the switching policy from logout needed to the 2010 switching.

Steps:
1. Make sure gfxCardStatus isn't running and just to be safe reboot.
2. Look at SystemSettings.app, Energy Saving, there should be the old dialog with two radio buttons.
3. Close SystemSettings.app, run switcher in Terminal
4. Open SystemSettings.app again and check if it worked :)
5. Please post results and terminal output here.

As always this is potentially dangerous but would be awesome if it works. Unfortunately I don't have a old mbp to experiment with myself.
 

Attachments

  • switcher.zip
    3.6 KB · Views: 108
When you try to max gala flash does it end up as a white screen? Mine does that, also. But if you make it fullscreen while running in 320, then switch to 1080 while already in full screen it works.

yes exactly i get that white screen. Thanks for the hint
 
I just saw this on twitter:


Could someone with access to an older unibody mbp with two gpus test the program in the attachment? It changes the switching policy from logout needed to the 2010 switching.

Steps:
1. Make sure gfxCardStatus isn't running and just to be safe reboot.
2. Look at SystemSettings.app, Energy Saving, there should be the old dialog with two radio buttons.
3. Close SystemSettings.app, run switcher in Terminal
4. Open SystemSettings.app again and check if it worked :)
5. Please post results and terminal output here.

As always this is potentially dangerous but would be awesome if it works. Unfortunately I don't have a old mbp to experiment with myself.

Wow, that would be something!
 
Since my battery runtime goes down a little bit when I switch to Nvidia, is that further support for what ah- and bitninja are speculating?

If an application uses OpenGL, you can see it in one of the lists.
Switching doesn't always cleanly transfer the surfaces to the other card and as long as there's still at least one surface the card stays powered on. If you quit the offending application and the surface list is then empty, the card switches off. Also, when one card is running with the surface still on the other, the performance takes quite a hit.

That's one of the things I suspected...I'm not 100% sure the implementation currently in v1.6 completely disables the 330M. Can you confirm that the 330M isn't powered when on the Intel GPU without manually switching to it at all?
 
1.6.1 doesn't work. Always stays at n. Also, menu is very sluggish.

I just installed this app today for the first time (v1.6.1), and I too am always seeing N. It doesn't appear that Intel is ever in use, even when Dependent Processes says "None".

Is this an issue with gfxCardStattus, or with my MBP?
 
I just saw this on twitter:


Could someone with access to an older unibody mbp with two gpus test the program in the attachment? It changes the switching policy from logout needed to the 2010 switching.

Steps:
1. Make sure gfxCardStatus isn't running and just to be safe reboot.
2. Look at SystemSettings.app, Energy Saving, there should be the old dialog with two radio buttons.
3. Close SystemSettings.app, run switcher in Terminal
4. Open SystemSettings.app again and check if it worked :)
5. Please post results and terminal output here.

As always this is potentially dangerous but would be awesome if it works. Unfortunately I don't have a old mbp to experiment with myself.

Just to be sure, this guy (supposedly) got it working on a Late 08 MBP? Secondly, how do I run the switcher thing in Terminal? Thanks
 
Being able to switch to integrated graphics only should help with preserving the battery life, no? Has anyone noticed battery life increases since using the new version of the tool? What's your max. battery life possible now?
 
Hello guys,

I took the risk and tried Cody's source code in my late '08 MBP.

I'm able to switch between the 9400M and 9600GT cards successfully :apple:

The original gfxCardStatus application does not contain the strings necessary to detect which GPU is active, so I'm attaching a modified version of the application with the correct GPU names. I'm calling it "fast_switch".

These are the results of my tests:

- You can see how the graphic card switches in the System Profiler. Just open it, go to Graphics/Displays, use fast_switch and press command + R.

- It affects the energy server applet in the System Preferences. It changes to "Better battery life" when the 9400 is active.

- I tried Sauerbraten (An Open Source game) to test if the GPUs are really being switched. You can definitely see a difference in the frame rate.

- If a game is running while the 9400 is active, and you change to the 9600, it keeps running at a lower frame rate. My guess is that the OpenGL context is locked and the 9400 is still active.

- If you switch your graphics card while the MBP is unplugged, you can see how the remaining battery life changes abruptly.

There's a small bug that occurs when you switch the graphics card for the first time after a reboot, which turns the screen to a blueish tone. You can fix it by switching graphics cards again.

So I think this should work on all MBPs with a 9400-9600 combo.

Oh, and BTW... I'm not responsible for any damage caused by this program :p
 

Attachments

  • Fast Switch.dmg.zip
    476.4 KB · Views: 112
Great news, although your app is missing the growl framework and doesn't start without it.

Did you try switcher.zip and check if it enables automatic switchting?

Also, I think having just one app instead of several for this would be better, so what do you think about committing your improvements to gfxCardStatus at github?
 
Hello guys,

I took the risk and tried Cody's source code in my late '08 MBP.

I'm able to switch between the 9400M and 9600GT cards successfully :apple:

The original gfxCardStatus application does not contain the strings necessary to detect which GPU is active, so I'm attaching a modified version of the application with the correct GPU names. I'm calling it "fast_switch".

These are the results of my tests:

- You can see how the graphic card switches in the System Profiler. Just open it, go to Graphics/Displays, use fast_switch and press command + R.

- It affects the energy server applet in the System Preferences. It changes to "Better battery life" when the 9400 is active.

- I tried Sauerbraten (An Open Source game) to test if the GPUs are really being switched. You can definitely see a difference in the frame rate.

- If a game is running while the 9400 is active, and you change to the 9600, it keeps running at a lower frame rate. My guess is that the OpenGL context is locked and the 9400 is still active.

- If you switch your graphics card while the MBP is unplugged, you can see how the remaining battery life changes abruptly.

There's a small bug that occurs when you switch the graphics card for the first time after a reboot, which turns the screen to a blueish tone. You can fix it by switching graphics cards again.

So I think this should work on all MBPs with a 9400-9600 combo.

Oh, and BTW... I'm not responsible for any damage caused by this program :p


I opened it, and nothing happens. I checked activity monitor and I didn't see anything. How do I know if its running?
 
It doesn't need to run, it just starts, changes the switch mode and quits. After you run it once look at energy saving in systemsettings.app if something changed. Running it twice changes it back to normal switching.
 
Hey guys,

Sorry about the Growl framework, I have removed the dependency.

ah: I haven't tried switcher but I will definitely summit the changes to the gfxCardStatus at github.

waffles123: Can you try again?

By the way, I'm a 99% sure that the GPU switching in the new MBPs is software based and not a magical hardware solution.
 

Attachments

  • fast_switch.zip
    507.6 KB · Views: 154
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.