2019 27" iMac 5K (RP570X) [8th,6C] + RTX 3060 @ 32Gbps-TB3 (AORUS Gaming Box) + Win10 21H1 [sasha.tc]
iMac (Retina 5K, 27-inch, 2019)
CPU: 3 GHz 6-Core Intel i5 (8500)
iGPU: Intel 630HD (built-in CPU, disabled by Apple and irrelevant in this setup, but possible to enable apple_set_os.efi)
dGPU: Radeon Pro 570X 4GB
Windows 10 Pro
Miscellaneous: 40GB DDR4 Ram and 1TB M2 SSD (Seagate Barracuda SSD)
also SATA 500Gb SSD but is only used in macOS
AGB box originally was with GTX 1070, I followed the guide here and supplied 12V to PCIe slot pin 1 as well as connected PCIe x8 and x16 PRSNT pins (they actually are side B, pin 48 and side B pin 81 and not pin 82 as in linked post). I'm sure just one of these jumps would suffice but decided to make it work for sure.
- Install Windows 10 via Bootcamp and fully set it up.
- Fully patch/update windows, reboot. (I'm running 21H1 build 19043.1023)
- Disable as many Intel PCI Express Ports as you safely can - I had to disable Port #2 - A339 that hosts Broadcom Gigabit Ethernet controller and SD Card controller. I also disabled Standard SATA AHCI Controller which is directly connected to PCI bus as I do not have Fusion drive and only MacOS volumes are on my SATA connected SSD.
- Plug the eGPU in and let Windows install all the drivers.
- Once back in install the latest Game Ready nVidia Driver (466.47 in my case)
- Should all work normally.
It all works like anyone would expect with 99% eGPU detection upon boot/restart as long as I keep Gigabit Ethernet controller disabled (preferrably PCIe Port #2 alltogether). I can still get Ethernet working by enabling it after boot is complete (very useful to have wired connection for wireless VR), but must disable it before reboot - otherwise hello error 43/12.
It does not matter which of the Thunderbolt ports I use. Same effect/stability on both as long as there is enough free PCIe resources for the eGPU to grab.
Another critical point to have setup working - do not update AMD Catalyst drivers higher than 19.30.01.53. It enables your dGPU to grab/reserve more resources to itself and again - hello error 43/12. (Downside of this I have - X-Plane 11.50 does not see Vulkan capability if I accidentally run it on dGPU)
I also updated Thunderbolt controller drivers to the latest 1.41.1094.0 for my Thunderbolt 3 - 15EB controller. Did not affect eGPU initiation.
Edit: updated detection reliability rate to 99% as have just experienced cold boot from overnight power off state and eGPU did not start (error 43). All I had to do to enable it again was to reboot Windows, but that was not a plain simple reboot. Appears that latest Thunderbolt driver really heavily spams System Event Log with errors in the event your eGPU generates error 43 on boot and then reboot takes forever unless you unplug AGB's TB cable and plug it back in straight away.
Thanks, @itsage, I learned so much from this forum so it was definitely time to give back a little.
Here for convenience of understanding the Superposition benchmarks - I run it 3 cycles - twice on 2 different external monitors and once in windowed mode on internal iMac 5K display. Backfeed losses were pretty significant and averaged 28% (
yay! I can upload pic now!
Ok, some 2 weeks later some updates:
- I have upgraded my 2019 iMac from i5-8500 to i9-9900k and ... Superposition benchmark numbers, to be honest, did not move anyhow significantly ( But, boy, do I feel the difference in games! Especially such CPU-hungry monsters as MSFS2020, X-Plane, Prepar3D (which what I mainly do all this anyways for). With some Process Lassoing I even can enjoy it in VR without stuttering (to be fair driver update also came along to 466.63 but I believe that was not a contributor)
- I learned that enabling FaceTime camera does not make any effect on eGPU PCIe resources wars (at least with i9-9900k), so I just leave it permanently enabled now.
- I got tired of having to remember and disable/enable Intel(R) PCI Express Root Port #2 - A339 (which hosts Gigabit Ethernet and SD card reader) every time I need it or need to reboot/shutdown. So, I went and created 2 minimalistic .BAT scripts:
Of course you need to look for your device instance path and put it instead of mine (in double-quotes above)
I then used them in gpedit.mcs console as scripts triggered on my Windows Start/Shutdown. Works like a charm and now I do not worry about doing any of that on normal reboots/shutdowns.
There is no limit to perfection.