[Solved] Help! iMac 27" now thinks it is 18" after eGPU install
Got a horrible problem (now solved, but leaving this post for reference for others).
Set up my new eGPU with my iMac, using goalque's automategpu script. Worked perfectly for my external monitor, however my iMac 27" screen now thinks it is an 18" screen, even after everything uninstalled. See image attached.
My original setup: MacOS Sierra 10.12.3 | Late 2014 iMac 27" 5k | AMD Radeon R9 295X 4096MB
Here's what I did to get it working in the first place:
- All eGPU disconnected from iMac
- Restart iMac in recovery mode, disable SIP using "csrutil disable" in the terminal
- Clean shutdown of iMac
- Plugged in eGPU via MDP -> TB2/TB3, powered on
- Started iMac in BAU mode
- Akitio Node detected in System Report, GTX 980 TI not detected at this point
- Follow goalque's instructions to run the automateGPU script, no problems encountered
- Restarted iMac
- External Dell display now works perfectly, including eGPU acceleration
- Main iMac display thinks it is 18" - eek!
Here's what I've tried to fix it (unsuccessfully)
- Changed the screen resolution via the System Preferences -> Displays: No good, because MacOS thinks the screen is 18" wide as so any changes in resolution just fit the 18" screen
- Unplugged all eGPU stuff: No change
- Restarted: No change
- Changed nVidia driver settings to use OSX driver instead of nVidia: No change
- Uninstalled nVidia driver using it's uninstall in the utility: No change
- Reset the NVRAM and SMC: No change
- Searched the web for similar problems: Can't find anything
Please also note that I did exactly the same procedure to install the eGPU using my Late 2016 13" MacBook Pro (only this time using pure TB3) which worked perfectly in MacOS and didn't leave me any residual screen issues.
Hopefully some of you experts out there can help me solve this one, my iMac screen is quite laughable at the moment and I really need to fix it!
Edit 23/4/2017: Solution for 5K iMac: Rastafabi's solution - Using the referenced post I'm now able to use eGPU almost completely naturally. It's a very stable and easy to implement solution. This has probably given my iMac a few more years of usefulness.
This is a known issue:
If you want to preserve the eGPU screen output:
- Don’t use -skip-agdc option
- Sleep & wake -> this possibly gives 4K
- On macOS Sierra: sudo nvram boot-args="nv_spanmodepolicy=1", restart and report what happens
Thank you very much for your response (and your work) goalque. Ok, here's where are now:
- After uninstall, I edited line 62 of the script to config_board_ids=(). Rebooted, reinstalled, no change.
- I didn't use the -skip-agdc option in the first place (I didn't know I was supposed to nor do I have any clue what it does). Or was I supposed to somehow disable it?
- Sleep & wake: Yes, my viewable screen now fills the iMac display. However as you say, it looks to be 4k and doesn't have the correct default resolutions. However, it's much better than where I was.
- I did the sudo nvram boot-args etc. Didn't make any difference that I could see.
- Also I do note that on the links you sent me, they seem to refer to Dell 5k monitors. Mine is 4k, not sure if that makes any difference. But in any case, I don't have a problem with this monitor. I'm not sure what to do with those links?
Any idea how to restore my iMac screen to how it was in the first place, even if I have to abandon eGPU for now? (I can use my MBP which is actually faster but less convenient, I'm guessing because of TB3 in MBP vs TB2 in the iMac).
Thanks again for your help.
It’s advisable in the first place to use -skip-agdc with the 5K iMac. It does the same as line 62 fix but won’t give Nvidia eGPU screen output. The internal screen resolution will stay correct.
The boot-args nv_spanmodepolicy=1 is worth trying. We don’t know yet how it spans the content across the internal 5K screen when the eGPU monitor is plugged in and set as the primary.
Try also check/uncheck "Displays have separate spaces" in Mission Control.
If the nv_spanmodepolicy won’t restore the original resolution when the eGPU monitor is plugged in, try SwitchResX or reinstall macOS.
Thanks goalque. Perhaps stupid question, if using -skip-agdc doesn't give Nvidia eGPU screen output then what's the point of doing it at all?
- btw. the check/uncheck spaces has no effect.
- SwitchResX helps to get a sensible resolution back (only after doing sleep/wake), but I don't think it restores the original 5k resolution.
So I'm now going to try a restore of MacOS Sierra. C0uld you outline the recommended steps from a clean install for the 5k iMac setup, to use the eGPU on the external monitor? I know you've given me lots of commands/things to try in the various posts, but would be good if we could try them out in the sequence that you think is best. Ultimately I don't want to lose my original 5k screen when doing this, and would prefer to avoid the sleep/wake partial workaround. + if there is any way to undo the install that kills the screen resolution, that would be far preferable to a MacOS reinstall!
Thanks again, Dan.
Macs are not meant for gaming. You can use the eGPU for GPGPU tasks:
If the nv_spanmodepolicy doesn't help, and your requirement is the internal 5K, unfortunately you can't use the external monitor.
Download the script again, I made a minor change.
- Reinstall macOS
- sudo ./automate-eGPU.sh -skip-agdc
Download the script again, I made a minor change.
Hi goalque, I just want to check that I'm downloading from the right place, as for some reason my "diff" on the script I was using and the one I've downloaded from https://github.com/goalque/automate-eGPU is giving some very weird output. Visually the scripts looks very similar but I guess there is some parameter somewhere changed.
Also want to confirm the sequence of spanmodepolicy change, should I do that before or after running your script?
Seems that there are quite a few people out there with the same problem as me, I haven't seen anyone with a bulletproof solution (5k on the iMac screen, accelerated eGPU on the external monitor). Happy to be your tester for the script/changes, goalque.
This was the change:
I didn't test it.
You should do the spanmodepolicy change after running the script.
Thanks, one more thing I want to check: A lot of the resources you've pointed me to refer to Dell 5k monitors. Mine is a Dell 4k monitor, not 5k. Does the spanmodepolicy change still apply/work and is the thinking that it stops the screen res reset on the internal 5k display?