2019 15" MacBook Pro (RP560X) [9th, 6C,H] + RX 5600 XT @ 32Gbps-TB3 (Razer Core X) + macOS 10.15.6 & Win10 2004
- MacOS - Advanced data mining, analysis and machine learning
- Windows 10 with bootcamp for VR w/ Oculus Quest + Oculus Link + SteamVR (Why? See #1, and then add a %&$#@ quarantine means I needed an alternate reality to have fun, thus this.)
I have success on both fronts. But, before you dive into getting an eGPU, I can't emphasize enough that you must do your homework! I learned a ton through the process, but it was not straightforward. Trust this forum! Do your research first before shelling out money. For many, this setup just wouldn't make sense. You could:
- Just shell out the bucks for a legitimate gaming PC! Far easier.
- Or, if you have a high throughput Internet connection, sign up for a cloud gaming platform on Shadow (and plan on waiting for a long time), or pay a bit more and sign up on Paperspace, and get started right away while waiting for Shadow.
Some steps can be quite frustrating if you don't do things in the right order. Even worse is if you get the wrong eGPU enclosure or card that is not supported on your system. Do your homework! You will save yourself a ton of time!
- 15" 2019 MacBook Pro
- Processor: 2.6 GHz 6-Core Intel Core i7
- Memory: 32GB
- Internal HD: 512GB SSD
- External HD: 2 TB drive
- dGPU: AMD Radeon Pro 560X
- MacOS Catalina 10.15.6
- Windows 10 (through Bootcamp), build 2004
- Enclosure: Razer Core X
- GPU: Gigabyte Radeon RX 5600 XT
- NOTE - Apple does not list this card as officially supported. However, it worked. No problems.
- Cable: Maxonar Thunderbolt 3 Cable (3.9ft) Amazon
- HDMI Dummy Plug - Amazon
I went through two cheaper cables that sucked. Pay a bit more. It's worth it, especially over longer distance. The stock cable that came with the Razer worked, but I found 1.5ft very limiting.
HDMI Dummy Plug? Why? Because I do not have an external monitor. If you have an external monitor, obviously use that. When I actually want an external monitor, I just plug into my 54" HDMI screen when gaming. Otherwise, I can just use my HDMI dummy plug, which simulates a variety of resolutions, up to 4K screens. Works great. And they are cheap. And lets me mirror the internal screen on both OSs.
This was smooth. No problems. I just plugged it in, and it worked. Use finder to set your apps to prefer the eGPU where it makes sense to do so. Done.
Windows 10 2004 / Bootcamp
This was NOT smooth, and is why this forum exists! But, thanks to this forum, it's not bad.
- Run Bootcamp. I reserved 75GB for Windows 10. All apps will be installed on my 2TB external
- Installed Windows 10 2004. I did NOT do the inside track version, which apparently works better. I chose this path because I wanted the latest updates for security purposes. Alternatively, just choose 1903.v1, and turn off your updates. Far easier if that is acceptable for you.
- Update the OS and apps with Apple Software Update and Windows Update.
- Update the pci.sys driver from windows 10 1903.v1 install disk. Moved into system32\drivers. (See https://egpu.io/forums/pc-setup/egpu-fail-after-update-to-windows-19-03/ for more info about grabbing pci.sys). This is right on the main page of this forum! Do NOT neglect this info!
- Boot in safe mode. I ran DDU (display driver uninstall) 3x, following instructions right on video on main page of bootcampdrivers.com) I disabled driver updates.
- Install Adrenalin April 2020 Red Edition from bootcampdrivers.com
- Plug in eGPU. Turn on eGPU.
- Power on. It worked! No error code 12!
I ran a variety of tests on both Win10 and MacOS.
Running Unigine Valley on MacOS, 1920x1080 setting, fullscreen, ExtremeHD preset
With dGPU (560X):
Min FPS: 9
Max FPS: 30.6
With eGPU Radeon RX 5600XT, displayed on internal screen:
Min FPS: 29.4
Max FPS: 70.7
Nice bump! But, I want to run some more tests, esp. on Windows 10. Needless to say, on Windows 10, running the SteamVR Performance Test, it came up right at the end of the "Ready" category! Very happy. Under the 560X, this showed "Not Ready". So yeah.
Some of these comments will help get the most out of your setup. I've mostly focused on the VR setup in Windows 10, since that was far more challenging to get working smoothly.
- This just worked. But, my only issue is that, sometimes, booting with the eGPU ON freezes on booting MacOS. When I hot plug it, it always works. No problem.
- In contrast to MacOS, Windows 10 requires that I have the eGPU on BEFORE I bootup. Otherwise, sometimes, it just doesn't seem to register properly. No problem. I just turn it on and plug in before booting.
- You do notice a bit of an improvement in performance when you do NOT show the eGPU screen on the internal display. Makes sense. Send the screen update back through TB3 would slow things down a bit. So, if you want the most graphics performance, then show only on an external display.
- For VR, I use an HDMI dummy plug with Virtual Desktop Streamer, and then turn off the internal display, so that it displays only on the eGPU. I don't need to see the screen, since I can see the screen in both Oculus Link (wired USB 3 connection), or with Virtual Desktop.
- I can view the eGPU on the internal display in both MacOS and Windows 10. However, in Windows 10, the best graphics performance is when I actually fully disable the dGPU in device manager. This is very reliable, but again, make sure you have the eGPU on before booting into Windows 10. In this config, my internal display becomes my secondary monitor, and thus when I want to see the display on my laptop, I set it to duplicate the primary display (which is my HDMI dummy plug). Or simply plug in an HDMI monitor to the system and use only that.
- Many do the modified EFI boot record. I did not. I just wasn't comfortable with this. My config is working. YMMV.
Hope this helps someone. My VR has been a blast. This rollercoaster started all because I tried an Oculus Quest, and saw the light of gaming. (I'm old, I know.) I then went down and tried out the Oculus Link with the built in GPU (RX560), and as you can imagine, that sucked. BUT, it actually worked (albeit with vomit-inducing jumpiness.) Now, my eGPU setup supports every VR game that I throw at it very well. I've tested about 30 different games (on a limited budget, so lots of demos, cheaper games, not Half Life: Alex yet! Soon) using a good 10ft USB 3.1 cable between my Mac and my Oculus Quest, thus allowing me to run all Rift games on my quest using Oculus Link. But, wanting the wireless experience, I'm also using Virtual Desktop quite effectively on most games. Some games aren't quite working, but that's because of VD, not the eGPU. Games like The Room VR, Vispy Archer, Vader Immortal, Rush, Robo Recall, Form, Aircar, etc... all working at max graphics settings with no noticeable jumping or jitter in frames. Much happiness.
Seriously, I can't thank this forum enough. Y'all rock. I'll post benchmark updates soon.
@bkcs1, Thank you for sharing this build! Nice use of the HDMI dummy plug with Virtual Desktop Streamer. Have you tried Windows Graphics settings to make the eGPU handle each app/game and compare the experience?
@itsage, great question. I tried all sorts of different configurations with the Graphics Settings on the VR executables (Oculus, SteamVR, Virtual Desktop). I found that when I had the dGPU AND eGPU enabled in device manager, I absolutely needed to set the programs to high performance. I also would set it for the game executables themselves, but it was more important to do the main VR apps. But, even then, I would sometimes see some apps jitter a bit if the app was not physically being displayed on the external display connected to the eGPU.
Out of my different tests, I found the easiest setup for me was to just disable the dGPU altogether in device manager. When I need to actually see my screen for installation, config, setup, or just browsing or whatever, I duplicate the eGPU display to appear on my laptop (internal) screen (using windows-P key combo is my friend!) This optimal performance held true when I was running the Unigine benchmarks as well. (I will eventually assemble the benchmark info.) Most important, keep things running on the eGPU and external display, without duplicating back to the internal. Easy for games, but not always clear for the VR apps that sometimes don't appear on the display, but only in the headset. So, I just keep the dGPU disabled now.
Its about a 10% hit in performance by duplicating the eGPU display to the internal.
Virtual Desktop streamer + Oculus Quest is an amazing combo with the eGPU. When disabling the dGPU, I have no problems. Though, I had to workout networking issues to optimize the VD wireless link, but that's not for this forum. 🙂
You reminded me of one more interesting glitch with Oculus. When leaving both dGPU and eGPU enabled, the Oculus desktop app gave very strange behavior where the app window itself was black when I the graphics settings to high performance. This is what initially led me to investigate WTF to do about that. Nobody from Oculus would help since I was running in a setup that was "unsupported." So, long story short, it would appear when I forced Oculus to run on the dGPU, but why would I want that?!?! Since I want everything running on the eGPU for VR gaming, I just disabled the dGPU, and I have no problems.
@bkcs1, This is excellent insight! There are definitely a lot resource conflict at play when pairing up an eGPU. Graphics switching with eGPU was developed to work with an integrated GPU, not a dGPU-only system. Apple could have made things much easier by providing user a toggle switch in Boot Camp Control Panel to select between iGPU and dGPU imo. Or at the very least, allow the Intel iGPU to run alongside the Radeon dGPU so that we can easily disable the dGPU while using the iGPU-only mode when appropriate.
I don't have much experience using VR gear. Wearing glasses made my first trial with an Oculus Rift a very unpleasant ordeal. A headset with prescription lenses option would be an excellent feature for users like me. 😀