2017 15" MacBook Pro (RP560) [7th,4C,H] + RX Vega 64 @ 32Gbps-TB3 (Razer Core X) + macOS 10.14 & Win10 [zharrief]
I'm a happy camper now (until things change).
I have what I think is the most simple and seamless setup achievable for me (and maybe others).
MY goals (yours may vary):
- Above all else, use no methods which require reduction of security settings (in MacOS or Windows).
- This is a work requirement and life preference. I've spent the past decade doing all sorts of tinkering with hacks PCs/Android phones for fun and the endless pursuit of the PERFECT SETUP. But I can no longer afford the security compromises those tweaks sometimes needed.
- Keep setup as simple and streamlined as possible
- Ideally, leave just 1 cable plugged into my MBP at all times, and boot into MacOS/Bootcamp as needed without any special steps.
- Maximal possible gaming performance with no/minimal hacks
- I work in MacOS, I game in Windows.
- Goal #1 - 100% success!
- No need to disable SIP or run Windows in a reduced security mode (e.g. Test signing mode, etc.)
- Goal #2 - 90% success!
- I have to use 2 USB-C cables, but I can leave them plugged in all the time. There are also 2 special steps I must take each time I switch into/from Bootcamp, but they are very simple.
- Goal #3 - 100% success!
- TB3 eGPUs have inherent performance limits, but I require a MBP (PC is not an option for me), so I have to deal with them.
- I wanted the best Windows gaming performance available, and I also needed seamless Mac eGPU support, which for me meant I needed a Vega 64 (with AMD's drivers in Windows, not Apple's BootCamp special/outdated/under-supported drivers, which seemed to be missing support for Vulkan).
Short summary of the 1-time setup steps I took:
- I made sure I understood all the steps I read before changing anything.
- I did a Time Machine backup and created a Windows System Restore point.
- I read the main eGPU.io article on the subject of MBP eGPU Bootcamp by @itsage : bootcamp-setup-guide-tb3-macbook-pro
- Per that article, I read the Windows+iGPU activation guide by @goalque : how-to-keep-mbps-irisiris-pro-activated-when-booting-into-windows-boot-camp
- I did not use DDU (it requires Windows test signing mode). I did not use rEFInd, even though it would have been an even more seamless setup (it requires partially or completely disabling SIP).
- I used the USB boot method with the .efi file.
- I followed the Windows steps for disabling the PCIe slots for left-side TB3 ports and the dGPU.
- In MacOS, I set Bootcamp as the startup disk via system parameters. (Needed for the USB EFI to work!)
- First time booting using USB, Ctrl+select the USB EFI option from Mac boot menu to set it as default boot option. This was important because booting into MacOS accidentally (such as from a Windows restart after a Windows update) can break things if you haven't followed a special step (see below).
Special steps I take each time I switch to/from Bootcamp.
- If I restarted from MacOS, MBP will automatically boot using USB EFI which boots Windows. I will need to run integrated.bat as admin, then restart from Windows, which will automatically boot back into Windows using the USB EFI boot option, giving me working eGPU & iGPU, ready to get my game on!
- If I need to boot into MacOS after gaming in Windows, I must run dedicated.bat in Windows before restarting, then I must use the "hold option" boot menu to manually select MacOS.
Steps I'm happy I don't have to take!
- Disabling any security mechanisms
- Plugging/deplugging/hotplugging anything when moving between each OS
- MacBook Pro 15-inch, Mid-2017, Core i7 2.8GHz, Radeon Pro 560, 16GB RAM, 512 GB SSD.
- MacOS 10.14 (Mojave beta 18A336e, latest beta as of this writing). Windows 10 Pro via Bootcamp on 80GB partition.
- Razer Core X with Asus R.O.G. Strix Gaming OC Radeon RX Vega 64.
- DisplayPort out from eGPU into Acer 34in 3440x1440 Freesync (30Hz-75Hz) Ultrawide IPS - model no. XR34ICK. (I'm not using the USB hub that is built-into the monitor).
- Lenovo ThinkPad USB 3.0 dock. Connected devices:
- Logitech USB universal wireless receiver for simultaneous use of my mice: MX Master 1.0 (for gaming) and MX Ergo (for work). (could also have used BT feature of mice, but that requires pressing a button on the mice when I switch between MacOS and Windows)
- Corsair K95RGB keyboard (just 1 of the 2 USB plugs from the keyboard needs to be plugged into the dock since the dock has USB 3.0 inputs)
- SanDisk 128GB USB drive (has the EFI/Boot/bootx64.efi file on it, and is used when I need to move files between the OS's quickly)
- Gigabit Ethernet from my homenetwork
- Astro A50 with wireless Xbox receiver, plugged in via USB to the ThinkPad dock (I use it for Windows gaming and listening to music/watching videos when working in MacOS. When I game on my Xbox One X (which is plugged into the same monitor via HDMI) then I have to unplug from the ThinkPad dock and into the Xbox.
- 2TB Seagate USB 3.0 portable HDD (partitioned for Time Machine and my Steam games)
- Razer Core X is plugged into top-right (touch bar adjacent) TB3 port on my MBP.
- Lenovo ThinkPad dock is plugged into the bottom-right (delete key adjacent) TB3 port on my MBP.
- (Remember, the left-side TB3 ports are disabled in Windows, so I would only use them to plug something in temporarily when in MacOS).
- I have a USB-B to USB-C USB 3.1 cable I had to get to plug the ThinkPad dock into the MBP without a dongle.
- External display (via eGPU) and MBP built-in display work perfectly in MacOS, as do all peripherals plugged into the ThinkPad dock.
- External display (via eGPU) and MBP built-in display (via iGPU) work perfectly in Windows (after doing the special steps listed above), as do all peripherals plugged into the ThinkPad dock.
Right now, this setup is near perfect for me. But I plan to upgrade to a 2018 MBP, and the T2 chip in there might patch the .efi MacOS boot spoof method which enables the iGPU in Windows (I think I can still securely boot via external media on 2018 MBP while using the T2's "fully secure" boot-verification process, just need to enter a password to boot from external media which has the .efi on it). Also, Mojave might patch it sometime later down the line as well.
- I know I have a very delicate setup which could break with a software update, but right now it is the perfect setup for me, thanks to your work!
- Also, in order to better prepare myself for a possible future, wherein my security requirements and my tinkering needs come to an impasse, I would like to get started with learning about driver programming (.kexts and Windows equivalents). I'm a software developer/IT admin/technology consultant, but I work mostly with higher level languages (JS/PHP/C#/Java/Python and a few other proprietary languages, and some familiarity with bash/PowerShell/WindowsCMD). However I have no assembly or C/C++ experience, so I need some pointers (see what I did there?) on where I can begin my education down the .kext/driver tinkering path. Can you share some useful info?
- Also, if you need someone to occasionally test some tools you are building for the eGPU+MBP community, I can be available to help and learn!
You have no idea how glad I am that you posted your setup man !
Just received my Razer Core X yesterday and I will take care of setting up windows soon.
I have almost exactly the same needs as you regarding security bypassing etc, minus the coding skills haha.
Working on Mac OS, gaming in windows. It is even why I took too a Vega 64 (Sapphire nitro+ Vega 64, not the Limited Edition; the one whitout the vapor chamber and RGB) instead of a nvidia gpu, being able to use it right away on macOS.
Really glad to see that this setup would work, and not being the only one trying it.
Only difference between our setups would be MacBook Pro models, I have the 15” Mbp touch bar 2016, 2,9ghz, currently under High Sierra, and using the usb hub on my freesync 32” aoc monitor instead of a dedicated hub.
I originally planned on waiting to clean install the next MacOS version to setup windows whitout Bootcamp in order to get proper thunderbolt 3 driver that plug and play etc, as it normally should be.
That said, do you think this one would be viable ? (Throwing out security needs on this one haha)
Have a good evening !
@zharrief Very nice setup! I would say to wait a while for the dust to settle with the 2018 MacBook Pro and T2 implementation. While apple_set_os.efi and rEFInd remain working with the 2018 models, you have to disable Secure Boot.
No donation needed. Your participation and contributions to the forums mean a lot more to us. A maintenance tip I learned with the 15" MBP switching back and forth between OS is that you'll eventually forget to re-enable the dGPU. What you'll do in that scenario (black internal display booting into Windows) is to plug the eGPU with external monitor attached. You'll get output on the external monitor.
I'm happy that my setup proved useful for you! Yea our setups seem very similar and I don't think you'll have any issues if you just follow the guides for the USB-based efi and fixing error 12 for AMD eGPUs. To summarize those steps again
- Attach eGPU to the MBP (plug the USB dock into the same side USB ports)
- Place .efi file on USB drive (with folders and file name as specified in the guide)
- Place the gpu_switch folder on the drive as well so you have them available in Windows
- In MacOS, set Bootcamp as the Startup Disk (via system preferences), then restart
- System should automatically boot into Windows (keep eGPU attached)
- Run the integrated.bat file as admin
- Restart and boot into Windows via the USB option at the boot menu (ctrl+select the USB option to make it the default when restarting)
- Use device manager to disable the PCIe x16 slot for the dGPU
- Use device manager to disable either the left side (PCIe x8) or right side (PCIe x4) slots, whichever is not being used by your eGPU/dock
- Restart again
- Update drivers
I originally planned on waiting to clean install the next MacOS version to setup windows whitout Bootcamp in order to get proper thunderbolt 3 driver that plug and play etc, as it normally should be.That said, do you think this one would be viable ? (Throwing out security needs on this one haha)
I know that some people had issues with drivers on Windows, specifically issues with the Bootcamp AMD drivers getting in the way. But I don't think you need to avoid installing Windows via Bootcamp to fix the issue. I didn't have to use DDU, I just kept my eGPU plugged in and went through the process for disabling the PCIe slot for the dGPU and enabling the iGPU via the integrated.bat script (which uses gpu_switch). After doing that, I was able to use the normal AMD software and drivers with the Vega 64 via eGPU without issue. I think the issue with the Bootcamp drivers only comes up if the dGPU is detected by the AMD software. Disabling the dGPU in device manager is not enough, you have to disable the PCIe bus that the dGPU is connected to (the x16 one), and then the RP550/560 doesn't even appear in device manager. So, I don't think you need to try to avoid setting up Windows via Bootcamp to get around the driver issues.
@itsage, thanks and thanks again for your guides and advice! Yea, I probably will forget to run the script at some point, but I only use Windows when plugged in at my desk so it shouldn't be a blocker of an issue when I do forget
Thanks for sharing it out! I have a similar setup, but I use a gtx 1080ti instead and a Plugable thunderbolt 3 dock. When I'm on MacOS, I just use the dock to output to 2 different monitors. When I'm on Windows, I connect the eGPU and disconnect the 2 monitors from the dock. Kind of a pain to do this every time but it is worth it. I would love to have an AMD gpu to have native support on MacOS, but since I have a 2k/144hz monitor, and Vega isn't enough to drive Overwatch at that resolution/fps. But I'm sure as soon as AMD step up to a 1080ti performance I'm going to the red team.
Hello Zharrief !
Many thanks for the step by step guide !
I just had trouble login in windows with my gpu attached as it would freeze during login time and time again before running integrated bat if I remember correclty.
And then I was not aware that installing the drivers for my vega would solve error 12 after disabling pcie 16 and one of the two remaining (in my case, the right side, x4). I thought I forgot something black then.
I just have to boot through my efi usb boot everytime I want to use the egpu setup and I had once an issue where I had to reinstall Vega 64 drivers (I mean where the hell were they gone ?) but my setup is running incredibly well. In part thanks to you !
It sure feel good to live in 2018 haha.
Long live egpu.io community.
Just came accross my stuck windows login screen again a couple times now.
But now as the drivers are installed, the external screen is working and I am able to login and do stuff.
Strange isssue but as it doesn’t really pose a problem well I will let it for now.
A few questions regarding fans’ noise, as I need a very quiet environment for Music Production:
- Would you say this setup is very quiet?
- I found the Strix Vega 64 to be surprisingly quiet, so I guess this card is not producing too much noise on your side too?
- What about the MacBook Pro 15” fans? Does the fact some graphic processing is offloaded to the Vega GPU helps the Mac to have more thermal headroom to cool the CPU, and therefore not push the internal fans to the unbearably noisy 6000 rpm?
Thank you and kind regards
I bought Razer Core X myself but I have a problem with the shutdown. Basically the unit doesn't turn itself off when the laptop is shut down. The fans keep spinning and I have to either disconnect the USB cable or use the power switch. I also realised that the Razer support is the worst I've seen, you can't call it support even. For 3 weeks now nobody at Razer is helping and they keep sending automated messages that they haven't heard back from me. I would never buy a Razer product anymore as they just sell the things and don't care about the support.
Was anyone able to install the AMD Software when in Bootcamp? Says my Vega can't be found. Yet I see it in device manager with no problem and everything is working. Or did I miss a step somewhere on the site? Thanks