codykrieger / gfxCardStatus

gfxCardStatus is an open-source menu bar application that keeps track of which graphics card your unibody, dual-GPU MacBook Pro is using at any given time, and allows you to switch between them on demand.
https://gfx.io
Other
1.68k stars 320 forks source link

Changing to Integrated Only requires two clicks #103

Closed joshkulesza closed 6 years ago

joshkulesza commented 12 years ago

When using gfxcardstatus on a retina macbook, clicking 'integrated only' does no change the graphics settings and the tick moves back to 'dynamic only' almost instantly. Pressing 'integrated only' a second time does however activate integrated only

Fishrock123 commented 12 years ago

I can confirm this. (Retina Macbook.)

codykrieger commented 12 years ago

I can't reproduce this at all. You're not fiddling with the GPU settings in Energy Saver prefs or something are you?

Morse-Code commented 12 years ago

I've noticed the same problem with the release on the MacBook Pro Retina. After one click, the check mark is still next to Dynamic. Upon a second click, it moves to the Integrated. I have not touched any settings in Energy Saver prefs, and it does not exhibit this behavior with the previous release.

codykrieger commented 12 years ago

Maybe there's some bad state left over in your PRAM from the previous version? I'd try resetting your PRAM and see if that fixes the issue.

joshkulesza commented 12 years ago

Unfortunately, resetting PRAM has not helped.

codykrieger commented 12 years ago

After clicking Integrated Only for the first time and the menu doesn't update, can you run this command in Terminal and paste the output here? system_profiler SPDisplaysDataType

I assume the Notification Center notification doesn't show up until the second time you click as well?

joshkulesza commented 12 years ago

No notification appears on first click

Output after first click on 'integrated only':

Graphics/Displays:

Intel HD Graphics 4000:

  Chipset Model: Intel HD Graphics 4000
  Type: GPU
  Bus: Built-In
  VRAM (Total): 512 MB
  Vendor: Intel (0x8086)
  Device ID: 0x0166
  Revision ID: 0x0009
  gMux Version: 3.2.19 [3.2.8]
  Displays:
    Color LCD:
      Display Type: LCD
      Resolution: 2880 X 1800
      Retina: Yes
      Pixel Depth: 32-Bit Color (ARGB8888)
      Main Display: Yes
      Mirror: Off
      Online: Yes
      Built-In: Yes
      Connection Type: DisplayPort

NVIDIA GeForce GT 650M:

  Chipset Model: NVIDIA GeForce GT 650M
  Type: GPU
  Bus: PCIe
  PCIe Lane Width: x8
  VRAM (Total): 1024 MB
  Vendor: NVIDIA (0x10de)
  Device ID: 0x0fd5
  Revision ID: 0x00a2
  ROM Revision: 3688
  gMux Version: 3.2.19 [3.2.8]
codykrieger commented 12 years ago

And you were on Dynamic Switching before you clicked Integrated Only, right?

codykrieger commented 12 years ago

Whoooooaaaaa okay I was just able to reproduce this for the first time. That's nuts. Tons of WindowServer display disconnect/reconnect messages in Console.app every time this happens.

joshkulesza commented 12 years ago

Yep, I was on Dynamic before. Hadn't thought to check the Console.app, I'm also met with about 14 reconnect messages

Fishrock123 commented 11 years ago

And... this stil happens.

codykrieger commented 11 years ago

I don’t have any idea what’s causing this off the top of my head. As it stands, I won’t be able to investigate this for a few months (at minimum). I wouldn’t expect this to be fixed anytime soon.

joshkulesza commented 11 years ago

This seems like an interesting issue, I seem to have no such issue with the older gfxCardStatus. So either this is caused by some of the changes from 2.3 or older versions were reporting a successful switchover when in fact it was not. But as far as I can tell it seems to be the former rather than the latter.

codykrieger commented 11 years ago

This started occurring when 10.8.2 was released. Until that point, v2.3 worked fine, and this issue was nonexistent. If I had to guess, older versions of gfxCardStatus likely don't have this issue because they don't have the fix for issue #102 in place. If that is indeed the problem, then that would seem like a logical place to poke at first, and is potentially worth replacing with something more like the mechanism in #107.

Sent from my iPhone

On May 6, 2013, at 7:00 PM, iDontCYnot notifications@github.com wrote:

This seems like an interesting issue, I seem to have no such issue with the older gfxCardStatus. So either this is caused by some of the changes from 2.3 or older versions were reporting a successful switchover when in fact it was not. But as far as I can tell it seems to be the former rather than the latter.

— Reply to this email directly or view it on GitHubhttps://github.com/codykrieger/gfxCardStatus/issues/103#issuecomment-17519260 .

cpg commented 11 years ago

This happens to me as well. I am on v2.3, Lion and a late 2011 system.

FWIW, when going from dynamic to forced integrated-only, the app seems to take it and two small right-shifts (and back) occur in the top menu bar, for about one second.

Doing it over and over I seem to notice that the "right shifts" is the the "U.S." in the menubar disappearing briefly and then reappearing. http://dl.dropbox.com/u/364883/Screenshots/ch0x.png

$ system_profiler SPDisplaysDataType
Graphics/Displays:

    AMD Radeon HD 6750M:

      Chipset Model: AMD Radeon HD 6750M
      Type: GPU
      Bus: PCIe
      PCIe Lane Width: x8
      VRAM (Total): 512 MB
      Vendor: ATI (0x1002)
      Device ID: 0x6741
      Revision ID: 0x0000
      ROM Revision: 113-C0170L-573
      gMux Version: 1.9.23
      EFI Driver Version: 01.00.573

    Intel HD Graphics 3000:

      Chipset Model: Intel HD Graphics 3000
      Type: GPU
      Bus: Built-In
      VRAM (Total): 512 MB
      Vendor: Intel (0x8086)
      Device ID: 0x0116
      Revision ID: 0x0009
      gMux Version: 1.9.23
      Displays:
        Color LCD:
          Display Type: LCD
          Resolution: 1680 x 1050
          Pixel Depth: 32-Bit Color (ARGB8888)
          Main Display: Yes
          Mirror: Off
          Online: Yes
          Built-In: Yes
myMartek commented 11 years ago

I have fixed this in code by removing

    [integratedOnly setState:(isOnIntegratedOnly && !dynamic) ? NSOnState : NSOffState];
    [discreteOnly setState:(!isOnIntegratedOnly && !dynamic) ? NSOnState : NSOffState];
    [dynamicSwitching setState:dynamic ? NSOnState : NSOffState];

in GSMenuController.m. I don't know what this is intended to do but the dynamic variable is true even when integreted only mode was selected.

codykrieger commented 11 years ago

@myMartek Unfortunately I don't think that's a proper fix. dynamic should never be true after you've selected Integrated Only, which seems to suggest that something is wrong at a lower level.

okmacok commented 11 years ago

On a late 2011 mabook pro 10.8.4 it works with the first click (the Notification Center notification shows up) but the menu is not marked. I have to click a second time to get it marked. Another problem : menu choice is never kept when I restart. Is it normal ? I noticed that the menu which usually shows the name of the external card (gray menu) stays with the word "Card"... Precedent version had the right card name shown.

iccir commented 11 years ago

Also happens on 2013 Retina MacBook Pro. Investigating.

iccir commented 11 years ago

When I set "Integrated Only" the first time, -[GSMenuController setMode:] is called and sets the checkmark to NSOnState at the end of the method. Yay! We are in good state, now, the menu item agrees with the current mode of the system.

But then, _displayReconfigurationCallback gets called multiple times. A few of these have the kCGDisplaySetModeFlag set, and thus GPUDidChangeTo: is called on the AppDelegate, which then calls updateMenu on the menu controller.

updateMenu tries to set the state of the checkmarks again:

    [integratedOnly setState:(isOnIntegratedOnly && !dynamic) ? NSOnState : NSOffState];
    [discreteOnly setState:(!isOnIntegratedOnly && !dynamic) ? NSOnState : NSOffState];

However, in this situation, both [GSMux isUsingDynamicSwitching] and [GSMux isUsingOldStyleSwitchPolicy] are returning YES, but we never actually use the result from isUsingOldStyleSwitchPolicy other than in a log.

If I change this section of the method as follows, it works:

    BOOL dynamic = [GSMux isUsingDynamicSwitching];
    BOOL isOldStyle = [GSMux isUsingOldStyleSwitchPolicy];
    BOOL isOnIntegratedOnly = [GSMux isOnIntegratedOnlyMode];

    GTMLoggerInfo(@"Using dynamic switching?: %d", dynamic);
    GTMLoggerInfo(@"Using old-style switching policy?: %d", isOldStyle);

    if (isOldStyle && dynamic)
        dynamic = NO;

    [integratedOnly setState:(isOnIntegratedOnly && !dynamic) ? NSOnState : NSOffState];
    [discreteOnly setState:(!isOnIntegratedOnly && !dynamic) ? NSOnState : NSOffState];
    [dynamicSwitching setState:dynamic ? NSOnState : NSOffState];
Kanimies commented 10 years ago

Same problem here; with a faulty early 2011 MBP this is rather annoying as the computer crashes every time the external card is activated. So every time I try to choose integrated only, the program sets the mac into external graphics instead. In the rare occasion that this poorly manufactured Mac doesn't crash, selecting integrated graphics second time works. gfxCardStatus v2.3, OSX 10.9.2.

rwaldura commented 10 years ago

My Retina Mac (A1398) has gone bad: after a few minutes it crashes with "GPU Panic". If I turn off the GPU (switch to "integrated only" using this tool), it's fine. PHEW THANK YOU CODY FOR SAVING ME $$$$ in repairs!

At startup, it's a race between me and the GPU, trying to switch it off. It would help greatly if the switch were to "take" the first time around (topic of this issue). Better, if it could be made permanent, as suggested by @okmacok .

OS 10.8.5, gfxCardStatus 2.3 Thanks!

EduardoFromTheFuture commented 10 years ago

Hopefully this can be fixed, because it simply nullifies the ability to launch the app at startup through the CLI.

Here is what I got that might be of help for those that can't reproduce the issue:

starting the app:

$ /Applications/gfxCardStatus.app/Contents/MacOS/gfxCardStatus --integrated
2014-05-10 10:30:08.911 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[gfxCardStatusAppDelegate applicationDidFinishLaunching:] GPUs present: (
    "Intel HD Graphics 3000",
    "AMD Radeon HD 6770M"
)
2014-05-10 10:30:08.911 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[gfxCardStatusAppDelegate applicationDidFinishLaunching:] Integrated GPU name: Intel HD Graphics 3000
2014-05-10 10:30:08.911 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[gfxCardStatusAppDelegate applicationDidFinishLaunching:] Discrete GPU name: AMD Radeon HD 6770M
2014-05-10 10:30:08.932 gfxCardStatus[495/0x7fff7de29310] [lvl=2] +[GSGPU is2010MacBookPro] Nuke it from orbit switching disabled.
2014-05-10 10:30:08.932 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController updateMenu] Using dynamic switching?: 1
2014-05-10 10:30:08.932 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController updateMenu] Using old-style switching policy?: 0
2014-05-10 10:30:08.933 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController updateMenu] Intel HD Graphics 3000 in use. Sweet deal! More battery life.

first click on integrated only:

2014-05-10 10:30:14.072 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController setMode:] Setting Integrated Only...
2014-05-10 10:30:15.077 gfxCardStatus[495/0x7fff7de29310] [lvl=2] _displayReconfigurationCallback() A non-built-in display reconfiguration callback has been triggered.
2014-05-10 10:30:15.132 gfxCardStatus[495/0x7fff7de29310] [lvl=2] _displayReconfigurationCallback() A non-built-in display reconfiguration callback has been triggered.
2014-05-10 10:30:15.579 gfxCardStatus[495/0x10b481000] [lvl=2] ___displayReconfigurationCallback_block_invoke_0() Notification: GPU changed. Integrated? 1
2014-05-10 10:30:15.580 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using dynamic switching?: 1
2014-05-10 10:30:15.580 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using old-style switching policy?: 1
2014-05-10 10:30:15.580 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Intel HD Graphics 3000 in use. Sweet deal! More battery life.
2014-05-10 10:30:16.082 gfxCardStatus[495/0x10b481000] [lvl=2] ___displayReconfigurationCallback_block_invoke_0() Notification: GPU changed. Integrated? 1
2014-05-10 10:30:16.083 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using dynamic switching?: 1
2014-05-10 10:30:16.083 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using old-style switching policy?: 1
2014-05-10 10:30:16.083 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Intel HD Graphics 3000 in use. Sweet deal! More battery life.

second click on integrated only:

2014-05-10 10:30:22.621 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController setMode:] Setting Integrated Only...

then, a click on dynamic switching: 2014-05-10 10:38:29.632 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController setMode:] Setting Dynamic Switching...

now, trying to switch to integrated only once again, first click of attempt 2:

2014-05-10 10:38:34.820 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController setMode:] Setting Integrated Only...
2014-05-10 10:38:35.824 gfxCardStatus[495/0x7fff7de29310] [lvl=2] _displayReconfigurationCallback() A non-built-in display reconfiguration callback has been triggered.
2014-05-10 10:38:35.879 gfxCardStatus[495/0x7fff7de29310] [lvl=2] _displayReconfigurationCallback() A non-built-in display reconfiguration callback has been triggered.
2014-05-10 10:38:36.326 gfxCardStatus[495/0x10b481000] [lvl=2] ___displayReconfigurationCallback_block_invoke_0() Notification: GPU changed. Integrated? 1
2014-05-10 10:38:36.326 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using dynamic switching?: 1
2014-05-10 10:38:36.327 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using old-style switching policy?: 1
2014-05-10 10:38:36.327 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Intel HD Graphics 3000 in use. Sweet deal! More battery life.
2014-05-10 10:38:36.828 gfxCardStatus[495/0x10b481000] [lvl=2] ___displayReconfigurationCallback_block_invoke_0() Notification: GPU changed. Integrated? 1
2014-05-10 10:38:36.828 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using dynamic switching?: 1
2014-05-10 10:38:36.828 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Using old-style switching policy?: 1
2014-05-10 10:38:36.828 gfxCardStatus[495/0x10b481000] [lvl=2] -[GSMenuController updateMenu] Intel HD Graphics 3000 in use. Sweet deal! More battery life.

second click of attempt 2:

2014-05-10 10:38:42.434 gfxCardStatus[495/0x7fff7de29310] [lvl=2] -[GSMenuController setMode:] Setting Integrated Only...

This was on a macbook pro late 2011. OSX 10.9.2

Fishrock123 commented 10 years ago

Two years later, this problem persists.

qnxor commented 10 years ago

@Fishrock123 Indeed, but until there is an actual fix, see my small MacOH project (https://github.com/qnxor/macoh) for a workaround. The macoh.sh script makes consecutive attempts, monitoring the log file, to make sure the GPU is switched ... you can use the script directly, or just extract the code that deals with gfxCardStatus. I included a binary compiled form the latest sources in there as well.

codykrieger commented 10 years ago

@Fishrock123: You really know how to motivate someone to want to work on bugs!

noaho commented 10 years ago

I'm happy to donate to help get this bug fixed, it effects me every day.. Is there a bitcoin / paypal address for donations?

codykrieger commented 10 years ago

@NoahO: There is (see http://gfx.io), but I’m really sorry to say that even donations won’t help this get done any faster. :/ I just don’t have time to devote to this — especially not right now (currently in the middle of crunch time at work…seems like crunch time never ends).

On May 15, 2014, at 4:25 PM, NoahO notifications@github.com wrote:

I'm happy to donate to help get this bug fixed, it effects me every day.. Is there a bitcoin / paypal address for donations?

— Reply to this email directly or view it on GitHub.

Fishrock123 commented 10 years ago

I really wish I knew enough about this to help, but I have absolutely no clue how mac utilities work. Dx

EduardoFromTheFuture commented 10 years ago

@codykrieger : The way I see it, your app has two user bases: People looking for better battery life; And people looking to avoid problems with their discrete GPU.

Unfortunately, the subject of better battery life is already loaded with bloatware, misinformation and many articles that state the same things, for example.

As for the people looking to avoid problems with their discrete GPU, the subject is a little more serious, less commercial, I would say, and fortunately your app solves a huge problem for a LOT of people. However, for these people, I believe that there is a fundamental feature lacking in your app, which is the ability to load it as soon as possible to force the integrated graphics on. On my macbook, for example, I would love if I could force the discrete graphics OFF as soon as I click the power on button, or maybe at the first stages of booting.

This feature would mean that many macbooks would be revived: a quick search on the web shows that there is a enormous quantity of notebook that have failed discrete GPUs and can't be used because of this.

So, maybe you could try to fix the double click thing and try to enable people to load the app early at system boot.

I would love to help, but like @Fishrock123 said, I must climb the learning curve of mac utilities. I hope next month I will be able to, and it would also help if you could give people your thoughts on a possible fix so it's easier for other to contribute to your code.

qnxor commented 10 years ago

I've already posted a solution for the startup issue. Download my MacOH project from https://github.com/qnxor/macoh (download master zip), then unzip it in your home folder, then run bash macoh.sh -gpuswitch integrated. This will download the compiled binary from my project. Then schedule the same command line to start at boot.

You can change integrated with discrete or dynamic. The macoh.sh script makes several attempts to switch the GPU and checks the output of gfxCardStatus to make sure it's actually switched. It works for me every time. Although I'm not using it at startup, it should work just fine. Feel free to try it and let me know; post an issue in the macoh project if it doesn't.

Someone else posted a solution in another issue which you could try: https://github.com/codykrieger/gfxCardStatus/issues/150#issuecomment-43399276 (it's a compiled binary which is supposed to have fixed this issue #103 ... I haven't tried it yet)

zais commented 10 years ago

For those who is lucky as me and have faulty MBP late 2011 (discrete GPU causes crashes from time to time), i've forked this project to stripped it down to CLI only (to run during startup via LauchDaemons). Not sure if it really works, but i'm able to start laptop without issues almost always. https://github.com/zais/gfxCardStatus (fill free to test it out)

mjc commented 10 years ago

I'm experiencing this too on a late 2013 15" rMBP.

EduardoFromTheFuture commented 10 years ago

@zais , tried it an it didn't work :( Sadly, because I had high hopes. top | grep -i gfxCardStatus top | grep -i gfx both bring me nothing. Looking at top there is nothing there :(

Tested and it didn't work.

Just to make sure, here's what I've got after xcodebuild, in case I did something wrong:

Pinks-MacBook-Pro:gfxCardStatusCLI PinkFreud$ pwd
/usr/local/bin/gfxCardStatusCLI
Pinks-MacBook-Pro:gfxCardStatusCLI PinkFreud$ ls -lah
total 152
drwxr-xr-x@ 18 PinkFreud  staff   612B Jun 10 00:25 .
drwxr-xr-x   6 root       wheel   204B Jun  8 21:45 ..
-rw-r--r--@  1 PinkFreud  staff   6.0K Jun  8 21:43 .DS_Store
-rwxr-xr-x@  1 PinkFreud  staff    15B May 29 11:50 .gitattributes
-rwxr-xr-x@  1 PinkFreud  staff   163B May 29 11:50 .gitignore
-rwxr-xr-x@  1 PinkFreud  staff   131B May 29 11:50 .gitmodules
-rwxr-xr-x@  1 PinkFreud  staff   1.0K May 29 11:50 GSGPU.h
-rwxr-xr-x@  1 PinkFreud  staff   7.5K May 29 11:50 GSGPU.m
-rwxr-xr-x@  1 PinkFreud  staff   1.0K May 29 11:50 GSMux.h
-rwxr-xr-x@  1 PinkFreud  staff    15K May 29 11:50 GSMux.m
-rwxr-xr-x@  1 PinkFreud  staff   1.5K May 29 11:50 LICENSE
-rwxr-xr-x@  1 PinkFreud  staff   2.6K May 29 11:50 README.md
drwxr-xr-x@  4 PinkFreud  staff   136B Jun  8 21:45 build
-rwxr-xr-x@  1 PinkFreud  staff   128B May 29 11:50 build.sh
-rwxr-xr-x@  1 PinkFreud  staff   182B May 29 11:50 gfxCardStatusCLI-Prefix.pch
-rwxr-xr-x@  1 PinkFreud  staff   3.1K May 29 11:50 gfxCardStatusCLI.1
drwxr-xr-x@  3 PinkFreud  staff   102B May 29 11:50 gfxCardStatusCLI.xcodeproj
-rwxr-xr-x@  1 PinkFreud  staff   2.1K May 29 11:50 main.m
zais commented 10 years ago

eduardoxfurtado, /usr/local/bin/gfxCardStatusCLI should be executable (not directory), plus it's not a demon (should not be in processes after login). But it doesn't work anyway. My MBP laying in dust :(

EduardoFromTheFuture commented 10 years ago

@zais I knew something was fishy, however I followed your instructions :p

noaho commented 10 years ago

I just created a $15 bounty for this on bountysource.. Hopefully others can contribute too if it is important to you. https://www.bountysource.com/issues/1260994-changing-to-integrated-only-requires-two-clicks

ialexryan commented 9 years ago

Is there anything that we can do to help resolve this issue? :)

erincarikan commented 9 years ago

I am experiencing the same issue in my mbp 2011, yosemite. In addition to that I notice that when I select integrated only, most of the time, the first click after system restart sets it discrete only mode first, the second click performs the correct operation. This issue is killing me since my discrete card is not functioning properly, most of the time when I try to switch to integrated only, system freezes and crashes, because it is setting it to discrete only mode instead of integrated only. On the bright side, this issue motivated me to learn objective c, at this moment, I am trying to find the root cause of the issue;-)

bmacgreg312 commented 8 years ago

Hi, I see this is an old issue - still going in 10.10.5 (mid-2010 MacBook Pro). The "discreet" card causes crashes, so being able to stay with the integrated one is a lifesaver. However, if I set it to "i" and then start Adobe Illustrator, it overrides that and switches back to "d". I have to quick shut down Illustrator, click on "integrated" again, and then it behaves for the rest of the day. Has anyone figured out a way around this?

codykrieger commented 8 years ago

@bmacgreg312: This is a different bug that only exists on 2011-and-newer MBPs. You're running into #107.

bmacgreg312 commented 8 years ago

Okay, thanks. Sounds like there’s still no easy fix? I will try to remain vigilant…

On 13 Jun 2016, at 11:39, Cody Krieger notifications@github.com<mailto:notifications@github.com> wrote:

@bmacgreg312https://github.com/bmacgreg312: This is a different bug that only exists on 2011-and-newer MBPs. You're running into #107https://github.com/codykrieger/gfxCardStatus/pull/107.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/codykrieger/gfxCardStatus/issues/103#issuecomment-225619552, or mute the threadhttps://github.com/notifications/unsubscribe/AS_SfcPbEJ3P1GKynL5QD4g3LvlbNTe-ks5qLXmWgaJpZM4ANPvU.


Barbara MacGregor University of North Carolina Department of Marine Sciences 3117C Venable Hall (a/k/a Murray) CB#3300 Chapel Hill NC 27599

Email bmacgreg@unc.edumailto:bmacgreg@unc.edu Cell +1 (919) 260-6038 Fax +1 (919) 962-1254 Lab 3110 Venable Hall

bigdoghat commented 6 years ago

My computer also needs integrated to be selected twice and often during this the computer would freeze and crash then tries to repeatedly reboot on the discrete card and I'd get the blue screen.

This workaround below has been doing well for me if I have the computer set to Integrated only and something happens that requires a reboot. It gets my machine back up and running quickly without endless reboots and hoping each time that I don't get the blue stripey screen.

1) make sure gfx card status isn't set to fire up on computer boot up via the gfx prefs. If you're unable to get your machine to fully reboot to change this, you should be able to delete gfx card status if you fire up the computer in safe mode. Then on to step 2.

2) After the first reboot you'll probably get the blue stripey screen if you have the same issue as me, the fans will turn on high, leave it like this until the computer shuts itself down from getting too hot. Immediately press the power button and turn the computer back on after the shut down. I got this tip from elsewhere. For some reason immediately rebooting after an overheat shutdown fires up the integrated card AND dynamic switching enabled on the next reboot. But it will start off with the integrated card selected. The key is to not do anything that will cause dynamic switching to kick in at this point.

Disclaimer: I don't know if immediately turning on your computer after an overheat shutdown is damaging, that is something you'll have to research.

3) Delete your old copy of gfx card status if you haven't done so already via safe mode and download a fresh copy. Then do the double integrated click to switch to integrated only. This has worked about 8 times in a row for me without fail. For some reason using the existing copy of gfx card status will crash the computer when trying to switch to "integrated only" after reboot. Deleting the existing copy and installing a fresh copy doesn't crash for some reason. Don't use google chrome to download your new copy, this will switch to the discrete card and cause another crash. Using Firefox will keep it on the Integrated card.

I'm sure this makes no technical sense but as I said, it's worked for me and I can get back up and running fast after a reboot.

I'm on a 2011 Macbook Pro running Mavericks 10.9.3 and gfx v2.3

codykrieger commented 6 years ago

Tracking in #310; closing.