How To: eGPU-Accelerated Internal Display in macOS
With the release of automate-eGPU.sh v1.0.0 script last week, eGPU for macOS has become a much easier process for all Macs with Thunderbolt connectivity. The next big hurdle was to get the external graphics card to accelerate the internal display in macOS.
One of our forum members, enjoy, showed a clever way to accelerate his MacBook Pro's internal display with an eGPU in Windows. This trick inspired us to replicate a similar process for macOS. We have great news. You can now force the eGPU to accelerate the internal display in macOS thanks to Goalque's instructions.
The idea is to have a ghost external display attached to your eGPU. You launch your app on this ghost display and then switch to the viewable internal display using keyboard shortcuts.
A hardware adapter attached to your eGPU's HDMI or DVI port is required to create a ghost display. The required adapter can be purchased, like the ones we found to work: fit-Headless GS and 4K, NewerTech HDMI Headless, or Headless Ghost; or built like what enjoy did.
macOS eGPU-Accelerated Internal Display How-to:
- Download and run Spectacle
- Download and run DisableMonitor
- Go to macOS System Preferences -> Dock -> Position on screen -> Left (if you arrange your ghost display to the right of the internal display)
- Plug the ghost display adapter in and set it as the primary display
- Set the resolution to match internal screen in DisableMonitor*
- Launch an app such as Valley benchmark from the Dock (there you see its child window)
- Switch “Next Display” or “Previous Display” with a keyboard shortcut (CONTROL OPTION COMMAND LEFT or RIGHT ARROW).
* Spectacle switches apps between displays in both Windowed and Fullscreen mode. Matching the ghost display's resolution with the internal display using DisableMonitor is therefore recommended.
I've had great success replicating Goalque's process on my Late 2016 13" MacBook Pro using the fit-Headless GS 4K adapter. Performance takes a hit when the eGPU feeds its signal back into the internal display through the same Thunderbolt 3 connection. However, it's well worth implementing this solution if having an external display is a no-go for you.
Here's a youtube video showing this configuration in action:
Join our forum for latest eGPU development. Please share your thoughts in the comments or in our Mac Setup forum.
I noticed 9to5mac.com posted a video using the Node and a 2016 13" mbp and they said the dummy USB-C device was required for using hardware acceleration period. Is this only necessary for use on the internal display?
Attaching a USB-C device to the Late 2016 MacBook Pro to achieve external display acceleration in macOS is a workaround that is only required for a Thunderbolt 3 eGPU with an AMD graphics card. Thunderbolt 3 eGPU with an Nvidia graphics card does not require a dummy USB-C device. Goalque and FricoRico discovered this and can explain it in further detail.
An external display had been a requirement to use an eGPU in macOS up until a few days ago. Thanks to Goalque's instructions posted in the Mac Setup forum, a Mac's internal display can now be accelerated by the eGPU.
Only after enabling external display acceleration in macOS would you be able to force the eGPU to accelerate the internal display. This process is accomplished with an HDMI adapter, which is required to create a ghost external display. The HDMI adapter needed for internal display acceleration should not to be confused with the dummy USB-C device required for external display acceleration with an AMD graphics card.
I don't have FCP to try. The FCP crashing issue is unlikely to be resolved with this.
I want to view the Thunderbolt 3 performance hit, when the eGPU feeds its signal back into the internal display through the same Thunderbolt 3 connection.
MacBook Pro (Retina, 15-inch, Later 2013) 3.2GHz Quad Core Intel i7-4750HQ / 8 GB 1600 MHz DDR3 / 256GB SSD + 1TB
✪ mini eGPU ● PCI Express vs. Thunderbolt ● Mac CAN game ● Gaming Laptops vs. MacBook Pro with eGPU
Absolutely. That's on my to-do list this weekend. - https://egpu.io/performance-internal-vs-external-display/
What is the performance reduction (percentage) between using internal vs external display in MacOS?
Is the performance reduction similar under Windows 10?
From previous tests in Windows 10, it's about 15%. I will run benchmark this weekend in macOS and update this article.
Update: It's 30% in macOS - https://egpu.io/performance-internal-vs-external-display/
I'm going to ask some stupid questions so please be patient (any help is appreciated)
Can the Akitio node work on Windows 10 on an iMac late 2013 (thunderbolt 1)?
Follow up question: will it have any significant reductions in usage? (I've seen this post of yours https://egpu.io/forums/mac-setup/akitio-node-now-works-in-macos-with-late-2016-macbook-pro/paged/1/ but you haven't made it clear about wether it works as well as TB3)