2015 15" MacBook Pro (R9 M370X) [4th,4C,H] + RX 5600 XT @ 16Gbps-TB2>TB3 (Razer Core X) + macOS 10.15.5 & Win10
15" MacBook Pro Retina (Mid2015):
-2.5 GHz Quad-Core Intel Core i7 (I7-4870HQ)
-16 GB (1600 MHz DDR3)
-Radeon R9 M370X 2 GB
External monitor: Dell U2518D (2560 x 1440 at 60 Hz)
OSX: Catalina 10.15.5
Bootcamp: Windows 10 Pro build 18362.295 19H1 1903
- Make sure eGPU is NOT plugged.
- Install purge-wrangler following this guide.
- Run purge-wrangler
- If I connected the eGPU at the first step I would end up with a reboot loop (see #44 on GitHub)
- Therefore, skip eGPU detection (press ESC) and follow the installation
- Ti82 support: no
- eGPU Vendor: AMD
- Legacy drivers: yes
- Reboot and plug in eGPU (both TB2 ports on MBP work) either at the OS picker stage (press option key when mac starts booting) or just hot plug after logging in macOS
- (I assume you start with a fresh Win10 install and have already installed all Boot camp drivers installed by Boot Camp Assistant automatically).
- Download latest DDU.
- Reboot into safe mode.
- Run DDU (remove GPU drivers for AMD, Intel and Nvidia without restart). Then restart into normal Win10.
- Start the computer, hold option so you see the OS picker (Windows and OSX).
- Plug in the eGPU (both TB2 ports on MBP work) (at this point the graphics card fans started to spin, then quickly stopped, and the LED indicator on the card turned on). I waited for 5-10s to make sure the GPU started.
- Boot into Win10.
- Open Device Manager, verify your graphics adapter shows up as Microsoft Basic Display Adapter (same title for both eGPU and dGPU).
- Install the latest Bootcamp drivers (Adrenalin April 2020 Red Gaming edition. The actual driver inside is 20.4.2.
- Restart Win10.
- Open Device Manager, expect both dGPU and eGPU identified properly, but eGPU will have Code 12.
- Install eGPU-Toggler
- This step is device-specific. Follow the readme to figure out how to find your Hardware ID.
- Open egpu-toggler.bat with Notepad.
- For my particular setup, I had to replace 2 instances of "PCI\VEN_1002&DEV_66AF&SUBSYS_081E1002" with "PCI\VEN_1002&DEV_731F&SUBSYS_231C1458"
- I have also added a 5s delay to make sure the script waits before re-checking the status of Code 12 (otherwise the script only runs one round of enable/disable). To do this, add "timeout /t 2" just before "REM timeout /t 1 >nul"
- Run the script and after few round of enable/disable expect your external monitor to run on (Code 12 issue resolved). The script will stop automatically. If for some reason the Code 12 is still there after 10+ rounds of enable/disable, restart Win10 without unplugging eGPU and try again. For me, it takes 3-4 rounds of enable/disable and Code 12 disappears.
Link to my Geekbench profile (all results). All tests performed with the external monitor connected.
- dGPU (R9 M370X) OpenCL: 10509
- eGPU (RX 5600 XT) Metal: 29198
- eGPU (RX 5600 XT) OpenCL: 37008
- eGPU (RX 5600 XT + HDMI Dummy) Metal: 52020
- eGPU (RX 5600 XT + HDMI Dummy) OpenCL: 47502
PS I also tested with two HDMI and DP Dummies connected: there was no performance boost. One Dummy is enough.
Unigine Heaven 4.0 (extreme preset):
- dGPU (R9 M370X) FPS: 11.7, Score: 295, Min FPS: 5.0, Max FPS: 26.4
- eGPU (RX 5600 XT) FPS: 60.3, Score: 1520, Min FPS: 9.3, Max FPS: 122.5
PS HDMI Dummy did not provide any boost in performance in this test.
- eGPU (RX 5600 XT) OpenCL: 51672
Unigine Heaven 4.0 (extreme preset):
- eGPU (RX 5600 XT) FPS: 76.5, Score: 1926, Min FPS: 8.9, Max FPS: 156.4
Took me 2.5 day to make this thing work on Win10... I started with Win10 1909, which Is known for Code 12 issue. Unfortunately, I have not tried eGPU toggler on this Win10. Maybe it could have saved me days (!!!).
On Win10 1909 I tried the following:
- apple_set_os.efi approach. Managed to load with iGPU activated (I had a total of 3 graphics adapters in Device Manager, dGPU was inactivated), but Code 12 was still present even after dozens of attempts of manual enable/disable of different ports/devices/etc.
- startup.nsh EFI Shell script approach. I would always be either stuck at 'Set as vendor to Apple Inc..' (apple_set_os.efi step within startup.nsh) or with the black screen. Once even though I bricked MBP... No reaction on turn on button whatsoever, just black screen, no fans, no keyboard light, nothing... only NVRAM reset helped (a combination of Command + Option + P + R + turn on button for 20s).
Therefore, whoever is experiencing the Code 12 issue, I highly recommend starting with the eGPU toggler (!!!). If you have any questions, please ask!
The overall experience of having it all working? I played Tom Clancy's The Division the night before on minimal graphics with 15 FPS. Next day I played it at Ultra 1440P at 60 FPS on the same 5 years old laptop. To say I was freaking out is not to say anything. I was having an orgasm after seeing the snow flakes, reflections of NYC in the puddles and could spend days just sitting and looking at fire. I honestly could not be happier 😀 !
@anton_puzorjov, Thank you for sharing this excellent build and your experience setting it all up. I hear you on the joy of getting everything working in the end.
To say I was freaking out is not to say anything. I was having an orgasm after seeing the snow flakes, reflections of NYC in the puddles and could spend days just sitting and looking at fire. I honestly could not be happier 😀 !
Ah, I echo this feeling! To me there is as much joy in the process of supporting eGPUs as using it. Was my exact reaction when I got things going first time around. It just opened up access to proper AAA games for me.
"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
Thank you so much for sharing this build! I have the same Macbook Pro and after seeing your build I decided the pull the trigger on the exact same setup as yours.
I was almost laughed at by a couple of tech dudes on Youtube for contemplating an eGPU with TB2, saying that I would only see a slight difference using the egpu rx 5600xt over the m370x because TB2 bottleneck won't be worth it at all (those same dudes who didn't even think about plugging the eGPU into an external display to get the maximum power of the eGPU).
The setup will be here next week so we'll see. But your post gave me a lot of hope.
Have you tried your setup with FCPX or Premiere by any chance?
@hans999, I think I know exactly what youtube guys you are talking about... (huh!) Unfortunately, I do not do any video editing so I haven't tried to run any video software. Since the information will have to travel to the eGPU and back via the same TB2 port for e.g. video conversion, I think it might result in some bottleneck due to TB2 port... But needs to be tested.
Hi and thanks for sharing your setup.
I have a similar setup but am using a 2014 MBP with integrated graphics. Can you please tell me what the HDMI dummy is for and how it improves the scores so much?
Where is this plugged in to? I currently have my external display connected to the eGPU via DP cable. \
@isj, turns out that the performance output of the eGPU is somewhat limited on MacOS, even when one external monitor is connected. However, if you connect two monitors, the full performance is released. You can also simulate an external monitor using a HDMI dummy stick, which you plug into the eGPU.
Thank you for sharing. I have the same 2015 15" MacBook Pro (R9 M370X) [4th,4C,H] and I bought a razer core x and gtx 1660 super. will it be pretty much the same? except choosing "eGPU Vendor: Nvidia?
@wingnuts88, check this link https://egpu.io/forums/bootcamp/macbook-pro-16-nvidia-egpu/
Long story short: you have to use a particular version of Mac OS for Nvidia drivers to work. I opted for AMD because it allowed to avoid this issue.