-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Does this app work for macbooks older than 2011? #12
Comments
Is it possible for something like this to work with a Mac Mini (Mid 2011) with an Intel HD Graphics 3000 and AMD Radeon HD 6630M? As of now, I tried launching the app but nothing happens when I do. |
@irodimusDoes This app is really only designed for 15" and 17" macbook pros. I believe your mac mini does not have automatic graphics switching, even if it has both gpu's. I'm pretty sure it uses the AMD card all the time. You can check by going to system preferences -> energy saver -> automatic graphics switching. If you don't have a checkbox for automatic graphics switching then there is nothing my app can do (it will crash immediately), because your computer does not support it. If it does have the checkbox then please let me know and I'll check it out further! |
You are correct in that this Mac Mini (Mid 2011) does not have Automatic Graphic Switching, which is a bummer. Didn't hurt to ask though. |
Okay, you asked for it: 😏 On a 17" MacBook Pro Mid-2009 (macbookpro5,2 w/ discrete GPU nVidia GeForce 9600M GT (512MB) and an integrated GPU nVidia GeForce 9400M (256MB)) with macOS 10.13.4 (Build 17E202), gSwitch 1.7.7 will launch, but it will not even show its status bar icon. I did a
This is just my interpretation, of course, I'm still going to investigate what is logged in the inverse situation (= integrated GPU active, discrete GPU inactive). |
Here's the full output of a gSwitch launch up to the point freezing gSwitch activity:
|
Just as a sidenote to point out that graphics switching ability on the fly and the existence of the "automatic graphics switching" checkbox are not necessarily connected: The mid-2009 MacBook Pros did not have that checkbox in the (Mac) OS X releases during their lifecycle (Mac OS X 10.6 Snow Leopard to OS X 10.11 El Capitan), either, yet @codykrieger 's gfxCardStatus was nonetheless able to swith between integrated and discrete GPUs on the fly (i.e. without logging the user off) on these machines up to macOS 10.12 Sierra. This was not automatic graphics switching in the sense that the app would decide when to switch GPUs, but that a switch on the fly was possible on user interaction with gfxCardStatus Finder bar icon menu. The feature was finally broken by the changes Apple made in macOS 10.13 High Sierra, and neither Cody Krieger nor any other third party developers (e.g. the developers of Duet Display) have been able to reinstate that feature for older MacBook Pros in their apps. |
Oh boi! Ok, it's gonna take me a while to go through all of this.
Thats because it is swiftybeaver :) and thanks for leading with the log! (I have a tail.sh on the repo but it appears that it is out of date, I will update it)
You are correct, it is detecting the discrete one but not the integrated one. I do not think it crashed on this line: You can start the app by setting a specific mode off the bat by passing in Could you try launching with discrete selected? You should be able to start with discrete selected. I did not implement any of the code that gfxCardStatus used to support older machines, so I'm not surprised that it failed to find your card. Unfortunately I don't have a <2011 MBP so its difficult for me to test anything related to the older machines!
Ok thanks for the info! As you can tell I've only been doing this for like a month, I still don't know the intricacies of the older models yet.
Can you expand on this? Does gfxCardStatus work at all for your machine? I was under the impression that the older machines now have to log out in order to switch to a different card? If you can get back to me with those questions I think I will be able to add support for older machines (assuming its possible at all on 10.13?). I'm really busy with work right now but my schedule is going to clear up next week so I will have more time to look into it. |
@HackintoshHD The problem with the menu icon was an indirect bug caused by a missing gpu name. I just fixed it so now the menu should work (the app still won't work probably!) and released 1.7.8 so please download that first. |
Thanks a lot for your fast reaction on my feedback, @CodySchrank, and sorry for that bit of delay in responding myself (I'm quite busy with work right now, too). First of all, here's the feedback to your questions:
Yes, gfxCardStatus actually did work on my 17" MacBook Pro mid-2009 from the time I started using it (with OS X 10.8 Mountain Lion or OS X 10.9 Mavericks) up to (and including) macOS 10.12 Sierra. A few words on this particular MacBook Pro itself: The last OS version for the machine officially supported by Apple was OS X 10.11 El Capitan. For the upgrades to macOS 10.12 Sierra and macOS 10.13 High Sierra I used Colin Mistr's excellent macOS Sierra Patcher Tool rsp. macOS High Sierra Patcher Tool. This results in OS installations working completely flawlessly (mac OS 10.12 Sierra) in comparison to the last officially supported OS version or at least with only minor flaws (mac OS 10.13 High Sierra w/ sometimes unreliable hibernation and loss of the ability to switch GPUs on the fly using gfxCardStatus). Forum discussion to Colin's tools are taking place mainly on the MacRumors forums. As far as gfxCardStatus and later OS X/macOS versions (i.e. OS X 10.11 El Capitan or macOS 10.12 Sierra) are concerned, I had to switch from Cody Krieger's original 2.3 release to the 2.4.4i binaries of Steve Schow's gfxCardStatus fork. You're basically right that you have to log out on the older machines in order to switch from one GPU to the other, if you only use the features provided by Apple's OS - but: On my mid-2009 MacBook Pro, gfxCardStatus was nonetheless able to switch between GPUs on the fly up to macOS 10.12 Sierra: If you chose the other, currently inactive GPU in gfxCardStatus Finder bar icon's menu, the switch was done on the fly within perhaps two or three seconds without the need to log out. AFAIK, the background for this is that nVidia's GPUs actually were able to switch from one to the other on the fly and that Apple just hadn't software-implemented the feature for the mid-2009 MacBook Pro generation. That's what I've read, I'm sure Cody Krieger can give you more detailed and in-depth info on this.
No problem - this is the output of gSwitch 1.7.8 when launched with the
Things noticable to me:
If I can do more testing, please just let me know. I'd be more than happy to contribute to gSwitch by testing, if it helps to remove these somewhat artifical flaws from otherwise still completely decent working machines like the MacBook Pro mid-2009 generation. |
@HackintoshHD Thanks dude! I see the problem to getting the right GPU name. And since a lot of the code is dependent on having the right gpu, I'll fix that, and then send you the binary to test. I'm still pretty busy but I'll dive into this in a couple days. |
@HackintoshHD Ok I finally have some free time! I think I fixed the problem with detecting the respective gpus. If this fix worked I need to see how the app reacts to your machine now in the logs. If you're comfortable building with xcode can you clone or fork the development branch? If not thats totally ok I will make a binary and upload it to github. |
@CodySchrank Thanks for potentially fixing the GPU detection. In general, building the development branch with Xcode shouldn't be a problem for me. I've already forked your project and got around the code signing stuff in Xcode. I am now investigating a remaining Xcode problem with SwiftyBeaver when building the project (error message: No such module 'SwiftyBeaver', a bit like here) and I'm confident I'll also get around that by next week. |
@HackintoshHD You have to use carthage to install the modules
And then bootstrap the frameworks in the project dir:
Then you should be able to build in Xcode. |
Thank you, I realize this was a so to speak RTFM! problem on my side. Sorry for that. - I've now followed your build instructions and could easily build gSwitch. Here's again the output when launched with the
The discrete GPU is now correctly identified, GPUs are no longer mixed up. Switching GPUs in gSwitch's menu does not have an effect, yet, the active GPU will remain active and no switch is taking place. |
Haha no worries I probably should have mentioned it. I'm surprised it is still saying unknown integrated gpu.. I have an idea of how to get the app to work for your machine but I need to figure this out first. I just made a couple commits can you pull the dev branch and give me the log again? You can probably launch the app normally now. ( or just build with xcode and copy/paste the output ) |
I'm sorry I made a mistake yesterday by building the experimental branch instead of the development branch. There's not much of a difference in the output, however:
I'll pull the dev branch again later tonight and give you the log again. |
Here's the output after forking again and building gSwitch from the dev branch:
The corresponding gSwitch Finder bar icon and (localized) menu look like this: |
My MBP17 late 2011 (AMD Radeon HD 6770M 1GB + Intel HD Graphics 3000 512Mb) has a problem with the graphic MUX so that when in integrated mode, if some app switches to discrete graphics and there is no external monitor connected then the OS panics and reboots. |
@mobimation When an app requests the discrete graphics card the OS forces it to be switched, this app just switches it back to the integrated one. It sounds like you're looking to completely disable your card, you can do that with this: https://apple.stackexchange.com/questions/166876/macbook-pro-how-to-disable-discrete-gpu-permanently-from-efi/285896#285896 |
@HackintoshHD Thanks so much, I know how to fix the gpu detection. I'll get back to you in a couple days (I'm really busy right now) and I want to test some gpu features. |
@HackintoshHD Hey sorry for the delay, I've just had to prioritize work the past couple weeks. I believe I fixed the gpu detection in the latest release for your machine if you could confirm. I also added an advanced pane. Theres some values I would like you to test if you could? I'm not sure exactly what settings are needed yet but I'll get back to you. |
Thanks a lot for the improved code. I've now run a few tests with the current gSwitch 1.7.9: The MacBook Pro was initially on integrated graphics. This time, gSwitch was able to detect both GPUs correctly and even successfully switch from integrated to discrete graphics on the fly (a step that no other macOS utility is currently able to achieve on the machine). The switch back to integrated graphics was not (yet) successful. I then went to the gSwitch advanced pane and tried a few buttons - Here's the complete output:
|
A further detail concerning the hardware itself: Another discovery I've made with macOS 10.13.5 on this macbookpro5,2 in the meantime is that the System Preferences' Energy Saver pane's checkboxes changes depending on whether you start the machine on battery or connected by a power cable. On battery, the Energy Saver pane offers the choice between "Graphics: Better battery life" or "Higher performance" on its top left. That's the one I was used to in earlier macOS version and that is AFAIK translating into "integrated or discrete GPU". When the MacBook Pro is plugged in, however, I only see the checkbox "Automatic graphics switching" which I can either check or uncheck. I don't know if this has a relevance to this thread's problem, I mention it just in case it does. If I can deliver further test data, just let me know. |
Did my gSwitch 1.7.9 log above provide any new and/or helpful information? - If I can perform further tests, please let me know. |
@HackintoshHD Yes it was helpful! I'm currently rewriting some of the core functions in rxSwift to make the app more efficient. And I will attempt to add in the gpu changing for legacy machines at the same time because I know there are some settings that have to be used with them when switching. |
Seems to work fine on MBP 15 Mid 2010 (i7) with Intel HD Graphics 288 MB / NVIDIA GeForce GT 330M running 10.13.6. |
@CodySchrank : I know a new software version is ready when it's ready, of course, and an open source application developed for altruistic, ideal reasons in a developer's spare time does need its developer to really have that free time to make development progress. So please forgive me that question out of curiosity ;) : Are there perhaps any new findings on the GPU changing feature for legacy MacBook Pros? - Thanks a lot! |
@HackintoshHD I wanted to thank you for all the hard work but I just don't think its going to be possible to support legacy macbooks with the new apple OS's anymore. My friend gave me his 2010 macbook pro to try and get it working but I just don't think the necessary API's exist anymore (for those machines). I'm going to leave this thread open if anyone wants to tackle this. gSwitch has all the necessary checks for finding a legacy computer its just the low level API needs to be found (it it exists!). |
@CodySchrank Thank you very much for your hard work on gSwitch nonetheless. I also really appreciate the honest way you're communicating the problems and that you're leaving this thread open for someone else to pick up where you left off. In the meantime, i.e. from time to time over the last few months, I've continued to analyse the MBP5,2 mid-2009 instant GPU switching problem under High Sierra and Mojave a bit further with the (albeit limited) ways and means I have. And I'm confident I'm about to find a solution that reinstates instant GPU switching on the fly on these machines, at least with @steveschow 's builds of gfxCardStatus. Provided I succeed, would you or, of course, anybody else be willing to look over the relevant information again to reevaluate if it makes an implementation of mid-2009 MBP5,2 instant GPU switching in gSwitch possible? |
@HackintoshHD Of course. If you or anyone else can figure out a way to do this for legacy computers I will help them however I can. |
Hi @CodySchrank . I'm not a coder. I tried to run your app on macOS 10.15.7 and the response was "developer needs to update software". I am hoping I can use your app to turn off the GPU and hopefully remove the purple/green taint I get on many YouTube videos. Any plans to update in the future? Cheers |
Working on a MBP Late 2013 running OSX Mojave. Thanks a lot for your work!!!! |
Okay, it's been two years now, but I've finally managed to get Instant GPU Switching / GPU Switching on the Fly working again on my 17" MacBook Pro Mid 2009 (MacBookPro5,2) for High Sierra, Mojave, Big Sur and Monterey: The relevant API is obviously part of Apple's code responsible for that was lastly present as I've written a script to automatically download (Low) Sierra's Security Update 2019-005 and to extract HackintoshHD/mbp5x-instant-gpu-switching I've also documented the entire process of transplanting With
gSwitch unfortunately doesn't switch successfully yet - as described above, it alters the system preferences' energy pref pane on my 17" MacBook Pro Mid 2009 to a "dynamic switching" view that is normally not present on a MacBookPro5,2 (not on the macOS ≤ 10.11, either, that still support this model). So I assume gSwitch treats the 2009 model exactly as its successors that officially support dynamic GPU switching. Would it be possible to change that and to at least reach the state of gfxCardStatus for the 2009 models? |
Hi Cody, actually I just start using gswitch on my Mid 2010 MBP 15" running macOS Monterey 12.6.2 via OpenCorePatcher. Seems like gswitch is working fine with it. Just to let you know. If there is anything u may need from my MBP to check just let me know. Kind Regards & Thanks for the great App. |
If someone has a macbook older than 2011, can you let me know if this app fully works? I don't have any way to test it.
The text was updated successfully, but these errors were encountered: