2020 13" MacBook Pro [10th,4C,G] + RX 5700 @ 32Gbps-TB3 (CM MasterCase EG200) + macOS 10.15.4 & Win10 1903 [itsage]
I was hoping Apple would introduce an Ice Lake MacBook Pro with a 14" display. I didn't plan on getting this 2020 version because the 13" display means it's too similar to my other two 13" MacBook Pros (2019 work laptop and 2017 home laptop). Due to major changes with the on-board Thunderbolt 3 controller, it seems setting up an eGPU in Boot Camp has become more challenging [Boot Camp setup & troubleshooting discussion]. The local Best Buy has i5 units in stock today so I decided to give it a try. The bad news is eGPU Boot Camp setup can be a headache with these new Ice Lake MacBook Pros. The good news is we can make it work.
First task was to install Windows 10 1903 V1 ISO through Boot Camp Assistant. This ISO contains version 18362.30 which is safe from error 12 that occurs in the latest Win10 versions. I then proceeded to disable automatic Windows Updates in Group Policy [Win10 1903 discussion link]. Next was to run DDU in order to not only prevent Windows from automatically download device drivers but also to remove graphics drivers and Thunderbolt PCI Express associations. I used original Radeon drivers from AMD website because this laptop doesn't have a Radeon dGPU (which would need modified drivers from bootcampdrivers.com).
2020 13" MacBook Pro - i5-1038NG7/Iris Plus Graphics iGPU/16GB RAM/512GB SSD
In macOS the RX 5700 eGPU was plug-and-play. The Samsung C34J79X 34" Ultrawide monitor was displaying native resolution and refresh rate without any settings changes (3440 x 1440 @ 100Hz). This 2020 13" MacBook Pro i5-1038NG7 came with macOS 10.14 [19E2269].
In Windows 10, besides choosing the right version [1903 18362.30-.295 discussion], I wanted to assess the changes with Ice Lake CPU and the four Thunderbolt 3 PCI Express connections. As seen in the hardware photo, I labeled the port numbers accordingly to the order they show up in Device Manager and HWiNFO64. From past experience, I opted for the first TB3 port which connects to PCI Express #0. The other three Thunderbolt PCI Express Root Ports were disabled prior to hot-plugging the RX 5700 eGPU to ensure the most resource allocation possible.
Windows 10 1903 18362.30 has very good hot-plug detection of Thunderbolt devices so there was no BSOD. Windows would freeze for a couple minutes to allocate resources for the eGPU. I could tell not only by the notification sound but also the disabled WiFi and Audio icon on the taskbar. Mouse and Keyboard were not functional during this initiation process either.
Below is the most consistent setup and boot-up procedure for me. If you encounter error 12, redo the procedure from step 5.
- Disable Secure Boot and allow Boot of External Devices [in Recovery Mode]
- Install Windows 10 1903 V1 ISO (version 19362.30) through Bootcamp Assistant [in macOS]
- Disable automatic Windows Updates through either Group Policy or Services [in Windows]
- Disable bottom three PCI Express Root Ports in Device Manager [in Windows]
- Run DDU to disable Windows automated driver installation and remove graphics drivers [in Windows]
- Hot-plug Radeon eGPU then install drivers from AMD website [in Windows]
- Shut computer down instead of Restart prompt through Radeon Installer [in Windows]
- Boot the computer into Windows without the eGPU connected and hot-plug once Windows fully loads
If all goes well the Radeon eGPU should work without error 12. I have had the most success through hot-plug. You can try timed hot-plug at the Windows logo and spinning circles during boot. Cold-plug is also possible with the use of a boot loader. @aa15032261 provides a very nice solution with a modified version of apple_set_os.efi. One feedback from other members experience is a further requirement of iGPU disablement for the eGPU to work. You may try that if disabling the three unused PCI Express Root Ports is not enough. The iSight camera is another possible component to disabled if you prefer to use the internal display for loopback acceleration.
One thing I noticed right away is the higher Memory Read (Host to Device) in AIDA64 GPGPU. I have not seen this amount of bandwidth on any other Ice Lake laptops I tested (Razer Blade Stealth and Samsung Galaxy Book Flex). It is something Apple did with the firmware on their systems. This may explain the challenge we face in setting up an eGPU in Windows Boot Camp with these newest Ice Laptop 13" MacBook Pros.
I ran Unigine in Windows to compare the Intel Iris Plus Graphics iGPU with RX 5700 eGPU (through loopback and external monitor).
|Intel iGPU||RX 5700 eGPU Loopback||RX 5700 eGPU External|
I will be testing different cards and eGPU enclosures in the coming weeks. It's sad to see AMD has not improved loopback performance of Navi cards after nearly a year on the market. If you experiencing error 12, make sure to do a clean Boot Camp install using Windows 10 1903 V1 ISO then follow the steps above. Don't use the latest Insider versions because I've found them very inconsistent.
Update: This setup procedure was confirmed to work with many eGPU enclosures as well as Radeon cards. Nvidia eGPU was not able to work with this 2020 13-in MacBook Pro running Windows 10 1903. Once I installed the latest Windows 10 2004 ISO, Nvidia eGPU was plug-and-play without any workarounds or component disablements.
@itsage, as always thanks for doing yet another reference build for the community! Good to know we have an established process for the 2020 model. Perhaps you can re-enable the PCI Express ports post-eGPU setup (while it connected) without issue?
"Desultory reading is delightful, but to be beneficial, our reading must be carefully directed." — Seneca
Author: kryptonite ✧ purge-wrangler ✧ tbt-flash ✧ purge-nvda ✧ set-eGPU
Insights Into macOS Video Editing Performance
Launching Apps on Specific (e)GPUs on macOS
Definitive macOS Thunderbolt eGFX Compatibility Registry
2014 15-inch MacBook Pro 750M
2018 15-inch MacBook Pro
Great to see you got it working and it’s interesting that hot plugging is now easier than cold, although it sounds like both have their challenges.
how consistent and stable would you say this set up is?
I would love to see some gaming benchmarks too to see how these new CPU’s change things.
And that prototype looks interesting!
Oh, also, love your new place!
edit: would also be great as a reference to see where we are with the other bootloaders (rEFInd and efi bootloader) became IMO cold plugging really improves the eGPU experience and those are the solutions that worked on my earlier model 13 inch when Apple set os didn’t.
2017 13" MacBook Pro Touch Bar
GTX1060 + AKiTiO Thunder3 + Win10
GTX1070 + Sonnet Breakaway Box + Win10
GTX1070 + Razer Core V1 + Win10
Vega 56 + Razer Core V1 + macOS + Win10
Vega 56 + Mantiz Venus + macOS + W10
@itsage, I've followed your guide but I'm getting weird error 207 when installing adrenaline drivers
See picture https://imgur.com/gallery/lFx26rL
3 bottom PCI Express root bridges are disabled in device msnsrer. I got my razer core x plugged into the second thunderbolt port on the left of my macbook.
@itsage Thanks a lot for your guide, finally the code 12 disappears and everything works fine in Bootcamp Win10. What I encountered is a little bit different after step5.
Doing the exactly same procedure from 1 to 5. During step 6, I hot-plugged the eGPU and install AMD drivers from AMD website, but I encountered the AMD drivers error 207 and the eGPU is still code 12 in device manager. So frustrated. Followed step 7, shutting the laptop down and restarting, but without disconnecting the eGPU. This time, the windows freeze at the login screen, just like you mentioned, wifi and audio icon disabled and mouse and keyboard not functional. I guess this short-freeze is the signal that eGPU start to work. After that, there is a notification that said a hardware is reset, need to restart the laptop, something like that, cause my system is in Chinese. By this time, the external monitor is still not in work.
I restarted the laptop still without disconnecting the eGPU, and the windows still have a short- freeze at the login screen, but this time, the external monitor finally get into work. No code 12 and GTA5 I am back yo!
@mac_editor, Yes once the system allocates enough resources for the eGPU to work without error 12, the other PCI Express Root ports can be enabled. I also found non-Thunderbolt devices remained functional when these ports were disabled. It seems the ports are working as USB-C only which is fine for many uses.
@eightarmedpet Hot-plug works 100% for me after setting the eGPU up following the steps in OP. I've been testing the EFI Boot loaders with different Macs too. Apple firmware changes during macOS system updates make things hard. We don't have any info to track what occurred on each Mac. My approach is to use the modified apple_set_os v0.5 for Macs with Apple T2 Security Chip and automated-eGPU EFI for the others. I have not tried rEFInd recently because I couldn't figure out a clean way to remove it.
It's been a hectic past few months but the move was well worth it. I'm in a more wooded area with lots of wild life, already encountered two snakes 🐍. The loft area will be done by mid June and I can set up a proper computer desk then.
@kobazik I've seen error 207 occurring near the end of Radeon driver installation process. Did you disable Windows auto driver download and installation in DDU? Run DDU again to remove remnants and start the Radeon Installer. This time select the option to reset drivers before installation.
@bupaonengsi37 Good to hear your RX 5700 XT eGPU is working! As mentioned above error 207 seems to be a conflict between Windows auto driver install and a manual install. I would say to leave it alone for now but if you start encountering issues, you can run DDU.
I spent the morning checking through some Radeon eGPUs I have. They all worked through the same setup procedure outlined in the OP.
Netstor HL23T-Plus + R9 Fury
Gigabyte RX 580 Gaming Box
Razer Core V2 + Vega Frontier Edition
@itsage, Hi there! For the past few days ive been going through this whole webpage, yet your way seems to make most sense for me. Do you think this egpu setup could be applied to my iMac 27 5k late 2015 with thunderbolt 3 to thunderbolt 2 reduction?
@e_wong, You can try by referencing the TB3 port number picture. Keep only the one you want enabled and disable the rest. Make sure to run DDU prior to hot-plugging the eGPU so that the system has a clean slate. Also choose "Factory Reset" in the Radeon Installer.
@martin_svehla While the overall setup procedure is similar, there are a couple differences in the 2015 27" iMac that need additional preparation. The first is to load DSDT override so that Windows has Large Memory to handle the Radeon eGPU. Best approach is the use automated-eGPU EFI and locate a precompiled DSDT.aml if one is available for your system. The second step is to use modified Radeon drivers from bootcampdrivers.com. I have not set one up to tell the exact step-by-step but you can try my build with the 2015 21" iMac + RX Vega 56 eGPU [build link].