steveschow / gfxCardStatus

This is a fork of gfxCardStatus, this fork will handle integrated-only mode a little better
Other
568 stars 41 forks source link

No longer able to switch to integrated mode #17

Open tiltX opened 7 years ago

tiltX commented 7 years ago

I'm on a 2010 Macbook Pro. gfxCardStatus used to be my saviour but it stopped working sometime in the beginning of this year. I was still on 10.9 so I suspected a software update from Apple to be the culprit. I've then updated to the latest 10.12 to not run a super outdated machine but gfxCardStatus still doesn't work properly anymore.

The issue is that it's no longer possible to switch to integrated mode. When I start up my computer it's in "automatic". Changing to "integrated only" doesn't change the menu icon and it doesn't pop up a notifaction that a GPU change has occured. I'm using 2.4.3i.

Sometimes, MacOS seems to switch to integrated on its own (or starts up in integrated) so I can then switch to "integrated only". Apps like Opera seem to respect that (there's no switch back to the nvidia GPU). But my Macbook still reboots unexpectedly, usually when waking up from sleep (might be a different issue though...).

Are you aware of any changes that Apple might have rolled out in recent updates that affect the GPU switching code?

steveschow commented 7 years ago

Sorry I'm not aware of any changes...other people are working fine on sierra with this, so there must be something else going on with your machine, perhaps some software running that requires nVidia or something...such as Siri...I'm not sure. I'm still on 10.11 myself.

mbpuser commented 7 years ago

I have kind of the same problem: Since an update of sierra (the update before the last) my macbook seems to ignore gfx and switches to discrete. Sometimes suddenly- at all time when I start opening a movie.

What happens afterwards is that my computer simply shuts down and restarts. I even have A checkmark on integrated only.

the version I found here didn't fix this as well (2.4.2i). ((The issue before was that I had to close gfx, restart it and then it was possible to change to "integrated only".))

My Mac: Mid2010 mbp with NVIDIA GT 330M (And IntelHD).

steveschow commented 7 years ago

What software are you running when it happens?

Thanks for the feedback. In my mind this is a strong indication to stay on El Capitan if you have a 2010 Mbp. That is what I am doing and I haven't been having any issues at all. However I hear there are a lot of issues with chrome and I don't use chrome. I would avoid chrome and avoid Siri

mbpuser commented 7 years ago

Hi! It happens on MacOS Sierra (10.12.5). I had Yosemite before Sierra but it worked also fine on the first Sierra Version(s) (I think until 10.12.3). Siri is also never on (: and Im always on safari.

tiltX commented 7 years ago

I'm not running Siri either, just Opera (it's based on Chrome though). However, Opera will only use the discrete GPU if in "automatic" or "discrete only" mode. If the mode is "integrated only", it will run fine without switching to the nvidia gpu and without being displayed as a dependency by gfxCardStatus.

It seems as if MacOS started ignoring the settings in gfxCardStatus. It stopped working for me when I was still on 10.9 (!) earlier this year and the only update around that time for 10.9 that's listed on apple.com is an iTunes update. Now I'm on 10.12 and unfortunately, the issue didn't go away. There's no way to revert to El Capitan if I never had it installed, is there?

Anyway, here's a screenshot showing the dysfunctional mode switching. Sorry for the German locale. The activity monitor is currently showing the integrated gpu being used while gfxCardStatus claims it's the discrete gpu. Opera is listed as requiring a high-performance gpu but it's actually not using it at the moment (it's not listed by gfxCardStatus as a dependency). gfxcard1

This disconnect between gfxCardStatus and what the Macbook is actually using is happening the other way around as well (which is the dangerous one so to speak). In discrete mode - even if there are no dependent apps - switching to "integrated only" won't actually switch the gpu. It will change the tick mark in gfxCardStatus but it won't change the icon and the label in the activity monitor. When I restart gfxCardStatus the setting is displayed as "automatic" and the discrete gpu is still in use.

Is there a way to perform the gpu switching on the command line? Or with some kind of debug output so I can get you some more information about what's going on and what's failing?

steveschow commented 7 years ago

yea the part about it not working on 10.9 is what threw me for a loop earlier.. I've been having no problems at all under 10.11. I've got all the latest updates for 10.11. However, I never use Opera or Chrome, if that matters.

The behavior you're experiencing is really weird and I'm not really sure to be honest. I'd be curious to find out if you use Cody's version 2.3 if you have these issues also. Just to rule out the small changes I did to 2.4.3i as being the problem.

You'll also have to ask Cody to see if there is any logging facility, i'm not sure at the moment. But I think in general, Opera/Chrome is probably messing with things somehow and Sierra is allowing it to. And it must be doing it in a way that is not alerting gfxCardStatus to the change.. something like that.

If you didn't at least download El Capitan from the App Store at least once, its not available there now. if you downloaded it at least once, then you can still get it from the App Store. (that is one reason I always download every OS update just in case. I downloaded SIerra once, for example, but never installed it, just so that I have the ability to download it in the future whenever I want. I'm not sure if Apple provides another way to obtain it. Try asking some friends if they installed El Cap ever, they can download it for you. But no promises that Opera/Chrome will not have problems also on 10.11.

tiltX commented 7 years ago

Thanks. Yeah, it might be Opera because that has received multiple updates. Maybe one has broken/confused the gnu switching. I'll work with Safari for the time being to see if the problems go away.

tiltX commented 7 years ago

I've now ditched Opera/Chrome and my system has indeed been much more stable. Just one unexpected reboot while my Macbook Pro had its lid closed and the power cord plugged in (I suspect that the discrete gpu was enabled because saving power was not important in this situation for the MBP).

However, I can't really claim that gfxCardStatus works with my 2010 MBP on Sierra (neither Cody's 2.3 nor your recompiled 2.3, nor the latest one). The menu items don't seem to have any effect anymore. However, staying on battery power a lot (especially if I close the lid) has been a reliable way to prevent the discrete GPU from being used and - after ditching Opera/Chrome in favour of Safari - the crashes have almost gone away completely (just keeping this info here in case other users are in search for solutions).

mbpuser commented 7 years ago

Hi there! My problems are still there but got less frequent (I use v2.3 (maybe i) at the moment.). But, as soon as I play Films on my computer (with Quicktime or quickview) the problem appeares. The same with e.g Vimeo- when I switch onto HD. Same with video editing and animation programs :/ Means: There is A problem. Is there any way to prevent this manually? I also tried to unistall the NVIDIA driver but this was not possible (due to "in use" issue).

steveschow commented 7 years ago

mbpuser. try some different video players for comparison, its possible quicktime is doing some under the covers switching to discrete also.

I haven't had any problems with you tube and vimeo videos, but I don't really watch movies on my MBP with quicktime or anything. might be worth trying VLC and some other free players to see if you get any better results.

At this point i would reccomend you all get back to 2.4.3i, as 2.3 will not hold integrated only mode at all, it will switch to discrete-only pretty quickly, not even dynamic mode, it switches to discrete-only.

I have managed to crash my MBP only a few times...like less then once a month and its powered on 24/7, sometimes I close the lid to sleep and sometimes not...no crashes...well less then once a month or so, and I haven't been able to discern a consistent reason why...so I'm not really sure. But I don't use Chrome. I'm on El Cap, I don't play movies in quicktime (not sure if that matters or not). I use gfx 2.4.3i. I do watch you tube and vimeo videos that come across facebook numerous times every day.

The bottom line is that Apple is trying to force discrete graphics use in order to create a more streamlined experience, and they don't really care if their "old" hardware works. You just have to avoid apps that will force the use of discrete graphics like the plague. Even with gfxCardStatus it appears that apps can somehow force discrete graphics...especially on Sierra compared to El Cap. I expect the next OS to be even worse in that regard, not better.

steveschow commented 7 years ago

Here is some interesting stuff that has come up recently. I'm afraid to try it, but it might be a way to force integrated mode all the time, completely and totally, absolutely no discrete, without using gfxCardStatus. Use at your own risk and let us know if it works:

https://apple.stackexchange.com/questions/166876/macbook-pro-how-to-disable-discrete-gpu-permanently-from-efi/285896#285896

https://forums.macrumors.com/threads/force-2011-macbook-pro-8-2-with-failed-amd-gpu-to-always-use-intel-integrated-gpu-efi-variable-fix.2037591/page-5#post-24511780