2016 15" MacBook Pro (RP460) [6th,4C,H] + RX Vega 64 LC @ 32Gbps-TB3 (Mantiz Venus) + macOS 10.15 & Win10 1903 [itsage]
At the moment I don’t have a 650W+ Thunderbolt 3 enclosure but the RX Vega 64 LC is too good to sit unused. Mantiz helped me modify the FSP 550W PSU in my Venus sample so I thought it’s worth a try. I’m glad I did because there’s no power issues so far using this eGPU with my 2016 15″ MacBook Pro. The only obstacle was the Mantiz Venus enclosure was not designed for mounting a radiator. In order to accommodate closed loop liquid cooling I removed the side panel.
2016 15″ MacBook Pro – i7-6920HQ/HD Graphics 530 iGPU & Radeon Pro 460 dGPU/16GB RAM/1TB SSD
In Windows 10 1903 @goalque‘s automate-eGPU EFI provides iGPU activation for internal display acceleration. This boot loader also integrates Clover so that I could allocate Large Memory through a modified DSDT (thanks to @nando4). Here’s my setup procedure:
- Install Windows 10 ISO through Bootcamp Assistant [in macOS]
- Install 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 the 2016 15″ MacBook Pro RP460 dsdt-modified.aml file as /EFI/CLOVER/ACPI/WINDOWS/dsdt.aml inside the EFI partition [in macOS]
- Hold OPTION at boot to select EFI drive and hit Q to access automate-eGPU EFI [boot selection]
- Install Intel iGPU drivers for the integrated graphics card then restart [in Windows]
- Download and run gpu-switch integrated.bat as Admin to attach the iGPU to internal display – install 2013 Visual C++ if needed [in Windows]
- Select “View by Connection” in Device Manager then locate and disable PCIe Controller x16 – 1901 to RP460 dGPU [in Windows]
- Shut MacBook Pro down then connect eGPU to any Thunderbolt 3 port [system OFF]
- Boot into Windows via automate-eGPU EFI [boot selection]
- Confirm a new Microsoft Basic Display Adapter in Device Manager then install Radeon drivers [in Windows]
Once the steps above were completed, my 2016 15″ MacBook Pro works just like an Intel iGPU-only laptop in Windows. I can use AMD XConnect for internal display acceleration with an Radeon eGPU (or Nvidia Optimus with a GeForce eGPU). The Radeon Pro 460 dGPU can be re-enabled if needed. Modified graphics drivers from Bootcampdrivers.com would allow one set of drivers to work for both dGPU and AMD eGPU.
You may have noticed there’s a third display device in Device Manager screen capture. I was connecting the ASUS MB16AC USB-C portable 15″ FHD monitor. The plan was to test loopback through one of the MacBook Pro‘s USB-C ports and external monitor through the use of PCIe riser + AIC. Neither attempt worked but I learned something new along the way. At first the USB-C monitor refused to work through the MBP‘s port because it complained there’s no DP Alt mode drivers. I downloaded and installed the DisplayLink drivers from ASUS Support website then the USB-C monitor started working. However it was running off the Intel iGPU so I could not test loopback mode.
The RX Vega 64 LC does not have a USB-C output display port to run the MB16AC directly. Therefore I relied on the Thunderbolt 3 monitor output workaround with a Thunderbolt 3 add-in card. The Mantiz Venus‘ PSU has a 4-pin Molex connector so it was straight forward to power the PCIe riser. I could hear Windows device connection sound every time I pluged/unplugged the USB-C monitor. Radeon Settings was also able to recognize the right model name and specs of the connected USB-C monitor. The system detected a connected display for sure but there was no output on the monitor unfortunately.
Here are some benchmark numbers through internal display mode for now. I will attempt setting up the MB16AC again to do loopback and external monitor mode testings.
For a Mac user, it doesn’t get much better than a liquid cooled RX Vega 64 eGPU. The Radeon VII is more powerful but it’s louder during operation and can’t sleep properly with most enclosures (NetStor HL23T-Plus being the exception). The RX Vega 64 LC can get loud too but the temps never exceeded high 60s Celsius. Airflow is excellent with both side panels off.
Any idea why you didn't get monitor output? I kinda gave up on my riser card as it had a constant flashing error light.
I tested my card in an Akitio Node lite and I had monitor output in both macOS and Windows but its was too many cables for my liking.
MacBook Pro Thunderbolt ports are connected only to dGPU. If you enable iGPU, doesn't that disable dGPU?
In macOS, you can use a program like gfxCardStatus to switch between dGPU and iGPU. Connecting an external display automatically enables the dGPU. See what happens when you try to switch to iGPU. iGPU only has 3 DisplayPort signals. One is used by the display. Only two would be available for the Thunderbolt 3 ports. So check all four ports. I suppose Apple could use some kind of MUX to route the two DisplayPort signals to the four Thunderbolt 3 ports (like they did in the Mac Mini 2018).
Windows sees a device that wants DisplayPort alt mode over USB-C (alt modes negotiated by Power Delivery type signals). But with the dGPU disabled, there's no DisplayPort connection to the Thunderbolt port. When an alt mode doesn't exist, Windows can show info provided by a USB 2.0 billboard device of the USB-C display. The ASUS MB16AC has a backup USB 3.0 only mode consisting of a DisplayLink USB device that can be used when there's no DisplayPort signal.
DisplayLink is graphics over USB 3.0. You don't want that. It uses the CPU and GPU to compress a frame buffer in memory and send draw data over USB. Not good for video or gaming or loop back.
@joevt Thank you for the in-depth assessment. I enabled the Intel iGPU in this 2016 15″ MacBook Pro in order to use AMD XConnect. The AMD dGPU can be left enabled or disabled. The issue is when there’s any other GPU present, the dGPU would encounter error 43. Monitor outputs through the USB-C/Thunderbolt 3 ports in this laptop is likely linked to the dGPU only.
Automate-eGPU EFI actually has the “Muxsettings” in the config file. I changed it to 1 for internal display attachment to iGPU and also run gpu-switch integrated.bat. These changes don’t seem to make the iGPU work with monitor output through the ports. DisplayLink like you said provide monitor output only and doesn’t work with eGPU loopback. I’m waiting on the Huawei VR 2 USB-C Cable.
Mantiz helped me modify the FSP 550W PSU in my Venus sample so I thought it’s worth a try
You didn't describe the modification. Was the PSU replaced?
USB is required to power the display since DisplayPort alone doesn't have enough power. Does USB serve any other function (other than DisplayLink which is not used while DisplayPort is available)? It's not a touch screen and the included pen is only used to prop the display up?
@joevt I believe Mantiz zeroed the 3V and 5V so that it’s all 12V output. You’re right about the ASUS portable monitor I’m using. It doesn’t have a battery or touchscreen so the USB-A was for power only. In a configuration with an LG 4K UltraFine for example I think the USB-A would serve more purposes.