Trying to run a software that requires Windows or Linux and direct access to the GPU, on an eGPU connected to a Macbook Pro
Laptop: Apple Macbook Pro 2020 13inch with just 2 thunderbolt ports on the left, i5 8275U CPU . Intel lists it as having maximum 16 PCI lanes.
Enclosure: Razer Core X
Graphics Card: RX 5700 XT.
As others have mentioned, the graphics card is Plug & Play in MacOS.
1) First hypothesis : try to run Linux or Windows in some Virtual Machine, and run the software in that environment.
I first tried with Docker, then with VirtualBox, then with Parallels.
The problem is that MacOs does not provide PCI passthrough to Virtual Machines. This means any virtual machines running on MacOs won't have direct access to the GPU.
2) Install Linux Ubuntu Dual boot:
It seems on the latest Macbook pros, you can't just create a partition on the Macbook's internal hard drive, and then use a bootable USB key to install your OS of choice on said partition. Could be because of the filesystem that new Macs use. So you have to use whatever Apple has already planned that you can dual boot, i.e. Windows, or install on an external SSD... but this Macbook I have has only 2 thunderbolt ports, so that seems difficult.
3) Use Bootcamp to install Windows Dual Boot
After installation, the mac restarts but Windows freezes on the blue logo. After many retries I figured I had to unplug the Graphics Card in order to boot into Windows. I finally was able to install Windows 10 and the dual boot is working. After installing latest updates and installing Radeon driver, the card appears as "VGA Video Controller" with the yellow triangle and Error Code 12, Insufficient resources.
I read up on many threads on egpu.io. I try the registry hack HackFlags 0x600. I reboot a number of times.
4) Downgrade to Windows 1903 18362.295
I find an ISO of Windows 18362.30 . In Macos, I start the bootcamp assistant to delete the windows partition. I restart, then I recreate the windows partition with bootcamp assistant using the old version iso. I boot into windows and disable all updates. I manually install the update to get to 18362.295. At this point, I can't successfully install the Radeon driver (which I could in the latest windows version). I have error 207. I just found a reddit thread that points to these instructions so I will try that https://egpu.io/forums/builds/2020-13-macbook-pro-10th4cg-rx-vega-56-32gbps-tb3-razer-core-x-macos-10-15-4-win10-andygev35/ .
Alright I've spent about as much time as I'm willing to spend on this project. It is time to shamefully concede defeat. In fact the older version of Windows seems to be working worse than my first install. I still can't boot Windows with eGPU plugged in, it freezes when the Windows logo appears. And with older version of Windows I can't even install the Radeon Driver properly. Maybe I just don't have enough Thunderbolt bandwidth on this device with only 2 ports, as I see in the guides they say to disable the bottom 3 pci ports in the control panel, but I can only disable 2.
Here I am with all this expensive hardware and no way to make it work nicely with each other. I find this is a cautionary tale against proprietary systems. As enticing as the new M1 Macbook Pros that just came out are, the bitter experience I am left with at the moment makes me think I should not chose an Apple laptop in the future. These work very well as long as you want to do what Apple planned for, but try doing something a little bit out of the box and you will run into a concrete wall. It is amazing that the guy in the other thread here managed to plug 4 eGPUs into the Framework laptop seemlessly.
Maybe I will retry with newer Windows version and disable the ports there and see what happens. Or maybe I'll take an nvidia GPU out of my Gaming PC and see if it works better in the eGPU, and put the RX 5700 XT in the gaming PC. Or maybe this message will stay in the cyber void as a warning for future lurkers.
Maybe there is a way to run an AMD RX 5700 XT as an eGpu connected to a 2-thunderbolt-port 2020 Macbook Pro, or maybe there isn't. But let's face it, if you are trying to plug a 500$ graphics cards enclosed in a 400$ eGpu enclosure into a 2000$+ Macbook laptop, at some point a couple hundred dollars will not move the needle that much on your overall budget. Your time is probably worth more than your money. What matters though, and maybe the main reason why you wanted the eGpu to work in bootcamp in the first place, is clutter and desk space.
For me the solution was to go to a local listings website and buy a second-hand 8th Generation Intel NUC with a core i3 for about 250$. That was one of the cheapest intel Nuc PCs with a Thunderbolt port on it that I could find. It's a mini PC and almost fits in the palm of the hand. The eGpu connected and installed seamlessly. With the Radeon drivers installed, it is plug and play now.
Hope this helps someone else in the future and saves you some valuable time.