2016 15" MacBook Pro (RP460) [6th,4C,H] + RX Vega 56 @ 32Gbps-TB3 (Netstor HL23T-Plus) + Win10 1903 [itsage]
I recently upgraded Windows 10 to 1903 on my 2018 Mac mini and found AMD eGPU hot-plug is now possible. This same success is replicable on my 2016 15" MacBook Pro. Thanks to @nando4's DSDT override and @goalque's automate-eGPU EFI Boot loader, this MBP can have Large Memory allocation in Boot Camp. That means no error 12 even when I leave all PCI components enabled.
2016 15" MacBook Pro - i7-6920HQ/HD Graphics 530 iGPU & Radeon Pro 460 dGPU/16GB RAM/1TB SSD
Netstor HL23T-Plus + RX Vega 56 + .5m Thunderbolt 3 cable
The 2016 15" MacBook Pro is one of the more tricky Macs to set up in Windows Boot Camp. The main challenge is its lack of Large Memory allocation compared to 2017-2019 iterations. It's possible to activate the Intel iGPU iGPU for AMD XConnect to accelerate internal display with the RX Vega 56 eGPU. However switching back and forth between Windows and macOS would require re-enabling the Radeon Pro 460 dGPU. It can get messy when I forget to do it. Also internal display brightness control is also not possible when it attaches to Intel iGPU. I wanted to see whether the RX Vega 56 eGPU could work alongside the Radeon Pro 460 dGPU. Here's my setup procedure:
- Install Windows 10 1903 through Boot Camp Assistant then finish Apple driver installation [in macOS & Windows]
- Download latest modified Radeon drivers (also contains DDU) from BootCampdrivers.com [in Windows]
- Run DDU to remove all default graphics drivers and disable Windows automated driver installation [in Windows]
- Create a 24MB FAT partition in Disk Utility and copy @goalque's automate-eGPU EFI onto it [in macOS]
- Copy matching pre-compiled DSDT.aml to EFI/CLOVER/ACPI/WINDOWS folder inside EFI partition [in macOS]
- Remove apple_set_os.efi from EFI/CLOVER/drivers64UEFI [in macOS]
- Hold OPTION at boot to select EFI drive and hit Q to access automate-eGPU EFI [boot selection]
- Install modified AMD graphics drivers for Radeon Pro dGPU then restart [in Windows]
- Boot into Windows via automate-eGPU EFI [boot selection]
- Hot-plug Radeon eGPU to a Thunderbolt 3 port once Windows fully loads [in Windows]
Once the steps above were completed, my 2016 15" MacBook Pro works just like 2017-2019 15" MacBook Pro in Windows. Large Memory allocation helps both Nvidia & AMD eGPU to work without error 12. The modified graphics drivers from Bootcampdrivers.com would allow one set of drivers to work for both Radeon Pro dGPU and AMD eGPU. Hot-plug possibility means I can switch between running AMD dGPU-only on the go or running AMD/Nvidia eGPU when stationary, all without a single restart. One downside is the need to manually assign the preferred GPU in Windows Graphics Settings for each game/app because AMD XConnect/Nvidia Optimus only works with Intel iGPU.
While Apple has neither supported nor made improvement to eGPU in Boot Camp, Microsoft has been doing excellent work. I secretly hope @sky11 has been working on this because his role at AMD is no longer XConnect Lead but rather Microsoft Security Co-Engineering. We have confirmation AMD eGPU hot-plug is possible on 2016 and 2018 15" MacBook Pro running Windows 10 1903. If you have 2017 and 2019 iteration please give the setup procedure above a try and report back.
Did you have any issues installing bootcamp software? Because on both my 2016 and 2017 the bootcamp software instal window is cut off and I am unable to see the buttons and tick boxes I need to hit to instal...
@eightarmedpet I have no issue with Boot Camp software installation (immediately after Windows installation). Which version of macOS are you on? Mime are on 10.15 Beta. I believe you can manually download and install the Boot Camp drivers.
@itsage yep worked second time when I dl’d the drivers separately on a 1gb internal partition and then installed from there...
im running the latest public Mojave release.
So if I'm reading your post right, AMD is hot-pluggable and no longer have to disable 1905? I never tried to get my dGPU working alongside my eGPU previously, so this would be all new to me. Luckily, you've done all the heavy lifting as usual!!!
But I don't know if I want to deal with Clover and all that other stuff since I still have a pretty easy setup w/out dGPU. Not a big priority for me right now since the SFF is so much more powerful in Windows than my MBP will ever be...
Does using clover in this way still come with the caveat emptor of a hardware brick by corrupting the firmware?
If I was still under warranty I wouldn’t think twice but unfortunately I’m not.
edit: I went for it anyways. YOLO I suppose. For the first time ever I have both the dGPU and eGPU working side by side. It’s pretty awesome.
Setup is a 2016 15 MBP RP455 & i7 HQ6820. I had some odd issues where the CPU refused to run much past 1ghz but a restart fixed it. eGPU accelerated graphics via the internal screen confirmed working with unengine valley. Couldn’t get heaven to use it.
However, I have zero hot plug ability. If I boot to windows using the EFI boot and then plug the eGPU once Windows is loaded I get an immediate BSOD. Booting with the eGPU connected from the start works as far as I can tell.
If I unplug and replug the eGPU after booting with the eGPU connected I just never get discovery. Should I install the thunderbolt management software? Maybe it’s a handshake issue? I’ll look into that tomorrow.
edit: cpu frequency issues returned. Hotplugging seems to work on the closest left thunderbolt port only.
2nd edit: Weird CPU frequency was due to setting custom fan curves with macfancontrol in win10. Hotplugging works on both of the left ports.
@magnesiumnitrate I've used automate-eGPU EFI on many Macs and never encountered issues. Glad you went for it and got a successful setup in Boot Camp. Hot-plug with AMD eGPU is a possibility but not always reliable. Booting up with the eGPU connected is the most reliable method in my experience. You can install the Thunderbolt Control Center but I don't believe it makes a difference. Apple has the Thunderbolt security settings as SL0 (No Security) in the Mac firmware so whichever Thunderbolt device is connected at pre-boot stage gets authorized in the OS. This also explains why hot-plug is inconsistent due to asleep Thunderbolt controller/s when there's no devices connected.