Late 2016 15" MacBook Pro + [email protected] (AKiTiO Node Duo) + Win10 [theitsage]
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).
2016 macbook pro 15", rp450, aorus gaming box 1070(swapped in a 1060), bootcamp windows 1803, internal display, egpu connected to top right usb c port
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!
Soon I will add my system & eGPU details or a build link to this my signature to give context to my posts
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.
Macbook pro 15 late 2016 with touchbar + Mantiz Venus + GTX 1070ti/RX 580