2016 15" MacBook Pro (RP450) [6th,4C,H] + RX 580 x2 @ 16Gbps-TB3 (AKiTiO Node Duo) + Win10 [itsage]
In my review of the AKiTiO Node Duo, I mentioned macOS could handle two eGPUs inside Node Duo. In Windows Boot Camp it's a completely different story. My 2016 15" MacBook Pro encounters error 12 with an AMD eGPU. I can get around error 12 following the eGPU Boot Camp setup guide. With two AMD cards, error 12 is a much bigger challenge. Thanks to @goalque's most recent EFI Boot Manager solution, I was able to get both RX 580 eGPUs inside the AKiTiO Node Duo working in Boot Camp.
Late 2016 15″ MacBook Pro – i7-6700HQ/Radeon Pro 450 dGPU/HD Graphics 530 iGPU/16GB RAM/256GB SSD
AKiTiO Node Duo + 2x Radeon RX 580s + .5m Thunderbolt 3 cable
The AKiTiO Node Duo comes with a 150W power adapter. It cannot run two graphics cards. I used a 650W SFX PSU and two Y splitter PCIe power cables to run this dual eGPU setup.
These are the basic steps I took to get this setup going:
- Install Windows 10 ISO through Bootcamp Assistant [in macOS].
- Install DDU to remove all default graphics drivers and disable Windows automated GPU driver installation [in Windows].
- Download and copy @goalque's automate-eGPU EFI to USB thumb drive [in macOS].
- Download and copy 2016 15" MacBook Pro compiled DSDT.aml to EFI/CLOVER/ACPI/WINDOWS folder inside EFI USB drive [in macOS].
- Hold OPTION at boot to select EFI drive and hit Q to access automate-eGPU EFI [boot selection].
- Install latest Intel iGPU drivers for the integrated graphics card then restart [in Windows].
- Download and run gpu-switch integrated.bat as Admin to attach the iGPU to internal display - install 2013 Visual C++ if needed [in Windows].
- Select View by Connection in Device Manager then locate and disable PCIe Controller x16 - 1901 as well as x8 - 1905 [in Windows].
- Shut MacBook Pro down then connect eGPU to one of the right side Thunderbolt 3 ports.
- Make sure EFI USB drive is connected to a left USB-C port then boot into Windows using automate-eGPU EFI [boot selection].
- Confirm two Microsoft Basic Display Adapters in Device Manager then install Radeon drivers [in Windows].
If all goes well, you have essentially converted the 2016 15" MacBook Pro into an iGPU only laptop. Disabling PCIe Controller x16 - 1901 [to Radeon dGPU] and PCIe Controller x8 -1905 [left Thunderbolt 3 controller] helps free up resources to revolve error 12. The compiled DSDT.aml override file provides Large Memory allocation to this MacBook Pro. This combination of workarounds allows two AMD eGPUs to work in Windows. Two Nvidia cards should have no issue working in Windows Boot Camp using this method.
Below are benchmark numbers through internal display mode and external monitor. I daisy-chained an USB 3.0 525GB external SSD to the AKiTiO Node Duo to run software/games off of it. What surprised me the most is the very similar performance between internal display vs external monitor. This is all through a x2 PCIe slot over Thunderbolt 3. The system used the eGPU [HP OEM RX 580 4GB] installed closest to the enclosure's I/O ports.
|Internal Display||External Monitor|
Hats off to @goalque for his latest solution. This eGPU Boot Manager is remarkable in that it works for both macOS and Windows without touching system files. In case you're curious about AMD CrossFire, I checked Radeon Settings » Gaming and it's not available. CrossFire requires x4 connection at a minimum. Gaming doesn't benefit from a dual eGPU setup like this AKiTiO Node Duo + 2x RX 580s. Computing tasks with support for multiple and external graphics cards will be a more appropriate use.
Crazy set up! The EFI bootloader worked nicely for me with Nvidia cards but I had the issue of black screen on my 5K when an AMD card was installed - so I'm wondering if allowing the AMD cards enough resources to get past error 12 takes them away from other devices (such as my 5K) and results in them having issues. Total guess work from me there, and mine is as ever a niche case.
@eightarmedpet Are you connecting both the AMD eGPU and LG 5K UltraFine on the same side? If not, give that a try. My thinking is to free up one Thunderbolt 3 controller so that you can disable it in Device Manager.
@itsage yep thats exactly what I was doing... I'm thinking the opposite - maybe the single controller is saturated?
Could be a whole new journey by end of play tomo... 😉
Edit: plugging the 5K screen to the other side got things working.
Unfortunately, following the previous guide you wrote had some problems for me( the refind method).
On the surface, everything works. egpu was detected and drivers installed. error 12 resolved. there are some problems however, that i hope this new method would solve.
the notable problems are:
1. external storage connectivity seems to not work at all. i have a hyperdrive hub using 2 usb c ports on left. usb peripherals like my mouse and keyboard etc work as normal connected to this hub. but my samsung t5 ssd and usb thumb drive both dont even show up in device manager. i tried connecting these 2 storage devices to the remaining usb c port on the right yields the same failure. removing the hub and connecting them directly to the computer doesnt work as well. plugging them to the aorus gaming box itself causes the egpu to disconnect, and it still doesn't work. when windows is booted without egpu, the storage devices work normally.
is this problem due to egpu using too much resources etc? why cant storage devices be recognized with egpu plugged in? i need my external ssd for everyday use.
2. although every indication shows the egpu is running as it should, even showing it is running games, it doesn't seem to be used. i can tell due to the same, but usually much worse framerates in games when "using" the egpu.
I messed with nvidia control panel 3d settings, forcing the egpu on globally. targetting the specific game in windows advance graphics setting to use high power graphics (egpu). none of these seem to solve the egpu not being "used".
when egpu is in "use" in a game, clockspeeds does go up, but temps stay at 40-50, indicating its not being used. in task manager, 1060 is shown not using any or only 0.1-0.2gb of vram. the 3d usage is also almost 0, but with copying usage in the 30%. the intel graphics seem to be used instead, with high load. even though nvidia control panel shows the 1060 is in use for the game.
im not sure what the problem is here
i did not change any clockspeed or any graphics profile, sticking to the default settings in evga's graphics app (precision).
Will switching to this new method solve the above problems? or can these problems be solved individually maintaning my current refind method?
i assume i dont need to disable pcie 1901 as im using a 1 x nvidia if i use this method?
thanks in advance!
I'm back again with some feedback. After a few days of use, I'm experiencing constant reboots, blue screens of death and even an orange screen of death. It requires about 3 or 4 reboots for Windows to go into the login screen, and then nothing guarantees it's not going to crash. I think I'm going to start over or just focus on gaming on MacOS.
After following your instruction in this post, my Macbook 15" Late 2016 works fine under Bootcamp with Atikio Node and a RX580 card. However, this is not satisfactory because the left two ports are disabled. Only with the right side Thunderbolt 3 ports there is even no place for the power supply. You said there is a method using Clover DSDT memory override by Mikeal to solve this problem, but it seems too complicated.
I'm very curious that after doing all these steps, what's the status of the left side Thunderbolt 3 ports?
If they are available using this method, I want to know how can I transfer from the previous method(here) to this? I guess it would be simply recovering EFI changes and putting the new automate-eGPU EFI in the external drive, but I'm not sure.
Besides, I'm confused of this step
- Download and copy 2016 15" MacBook Pro compiled DSDT.aml to EFI/CLOVER/ACPI/WINDOWS folder inside EFI USB drive [in macOS].
Does this mean I only need to put the DSDT.aml to EFI folder with the automate-eGPU EFI?
Thanks a lot for your help!
@immmortal I disabled the PCIe x8 Controller 1905 so that there's enough resource for a second RX 580 eGPU. If you're running only one RX 580 eGPU, you can leave that controller enabled. Yes the step to copy pre-compiled DSDT.aml to EFI folder is applicable with automate-eGPU EFI only.
@itsage Hi, I followed your steps on setting up my egpu on my MacBook Pro. My system specs is almost identical to yours. I followed your setup up to the point where I need to connect EFI USB and egpu. After booting, my startup screen froze. I tried plugging in different ports and it still doesnt works. The only way that it start up normally is when I only connect my charger to left TB3. Can you please help me.
Late 2016 15″ MacBook Pro – i7-6700HQ/Radeon Pro 455 dGPU/HD Graphics 530 iGPU/16GB RAM/512GB SSD
Windows 10 64 bit update April 2018
I downloaded DSDT.aml from the link in your guide; Apple_2016_late-15in_Macbook_Pro_RP455_mgear1981.
I have tried booting without egpu connected, the result is still zero. Even booting with EFI USB ends the same way, froze startup screen. The only way that it will boot is when I connect a charger alone. Booting with egpu, EFI USB and charger ends up in frozen startup screen.
Is it possible, the reason for this is the TB3 ports on my MBP is not working properly. I had my MBP for 2 years already, sometimes I experienced some connecting issues with my accessories when there is a slight movement on the connected plug. However this does not happen often.
By the way, right now I am having an unknown issue for my rx580 egpu not appearing on my MacOS. I remember it appeared once or twice when I first bought it. I tried different ports but no luck. Do you have any ideas on this?
@sun_vataniyapramote Consider NVRAM and SMC reset and boot twice clean into macOS.
I have tried your advice @mac_editor and the result is still a frozen startup screen. MacOS startup fine but not Bootcamp.
My egpu still does not show up on mac. 🙁
Yes, my Node pro appears on Thunderbolt tree but not rx580. I remember that radeon graphic card does not need graphic drivers on MacOS, am I right?The graphic card did appear when I first start using. I don't know why the graphic card is not appearing on my system now even though the graphic card's fan is spinning. is it because of the card is not place properly?
As of today, is what you detailed in your installation steps still necessary to get the 2016 15" MBP to work in Bootcamp (I'm on 1809 now)? I just got my MBP back from repair, and if I need to do all of this, I will pass on the eGPU setup with this computer. I can still play Fortnite at 60 FPS in Bootcamp with the internal display or external, so it would been a "nice to have" but isn't necessarily a "must have". I can't give up the dGPU to game on the eGPU which already has a priority to my 2014 Mac mini.
Started following this guide... DDU killed my 5K, figured a fresh instal would be a great place to start only for Bootcamp assistant to fail and leave 15 tiny sliver partitions only visible in terminal so going to have to try an instal manually. Remember this happened before with newer W10 builds - 1604 or similar worked fine. Luckily when I went from 10.13 to 10.14 macOS cleaned the partitions up automatically, sadly a macOS reinstalls didn't work this time. I'll be back!
@omardesu This guide and the steps involved were to accommodate two AMD eGPU in Windows Boot Camp. The measures done were more extensive than most setups. If you're going to set up one AMD eGPU, it's certainly less involved. However don't expect it to be plug-and-play. Take a look at this build guide in which I used rEFInd to run RX Vega 56 with the 2016 15" MacBook Pro in Boot Camp.
@omardesu Nvidia eGPU may be easier to set up. You can try hot-plug and see if it works. Windows 10 1809 provides "Graphics Options" to force internal display eGPU acceleration through dGPU.
@itsage I tried it for a few hours today... No bueno. Hot plug was fine and rebooting with eGPU is fine w/out any hangups. Installed the nVidia drivers, but I kept getting banged with Error 12. I even tried to Disable/Enable the root controller but that resulted in Windows crashing and rebooting. I'll give it try in a few days once I get back from a business trip, but I have little faith because of the Error 12.
@itsage THANK YOU SO MUCH. 2 years after purchasing my Akitio Node and GTX 1070 I was finally able to get it running without any error. I wasn't able to test on Valley Benchmark due some error, but will confirm later.
Can I create a partition on my laptop and transfer the EFI files there? Using a thumb drive is a bit annoying.
It's possible to create a small FAT partition and transfer automate-eGPU EFI over. You can use Disk Utility and add a new partition. I believe the smallest amount it allows is 24MB. The screen capture below is my Mac mini 128GB internal drive.
@itsage Sure, but I think there's a problem.
The GTX 1070 really doesn't seem to be performing that well. I get 30 fps in PUBG and 40-50 in Apex legends. Changing the graphic settings in game doesn't do anything. I have verified that the games are using the 1070 and have the correct settings enabled through the nVidia panel.
Do you have any idea what's wrong? Is the internal laptop screen limiting the FPS?
@cycloned The internal display shouldn't limit FPS. Do you know if Vertical Sync was ON in these games. I personally have not played neither so I'm not familiar with their in-game settings. I know in Unigine benchmark software, if Vertical Sync was ON the FPS would not exceed the refresh rates of the monitor.