How To: eGPU-Accelerated Internal Display in macOS

eGPU Resources 40 Comments

 

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 4KNewerTech HDMI Headless, or Headless Ghost; or built like what enjoy did.

 

macOS eGPU-Accelerated Internal Display How-to:

 

  1. Download and run Spectacle
  2. Download and run DisableMonitor
  3. Go to macOS System Preferences -> Dock -> Position on screen -> Left (if you arrange your ghost display to the right of the internal display)
  4. Plug the ghost display adapter in and set it as the primary display
  5. Set the resolution to match internal screen in DisableMonitor*
  6. Launch an app such as Valley benchmark from the Dock (there you see its child window)
  7. 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:

 

Here are a couple of screen captures showing Unigine Valley and Heaven running on a Late 2016 13″ MacBook Pro at 1440 x 900 full screen using an AKiTiO Node + GTX 980 Ti Thunderbolt 3 eGPU.

 

Join our forum for latest eGPU development. Please share your thoughts in the comments or in our Mac Setup forum.

 

Share this Post

Related Articles

 

Comments 40

    1. Post
      Author

      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.

    1. Post
      Author
  1. @itsage – Can you test the difference between Internal and External display with your setup? You must run the Unigine Heaven Benchmark with this settings.

    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.

    1. Post
      Author
    1. Post
      Author
  2. 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)

    1. Post
      Author

      It should work with your iMac late 2013. The performance difference is not that significant if you use the eGPU with an external display. Internal display eGPU usage will be a big hit on performance through Thunderbolt 1 connection.

  3. This method doesn’t work well with in full screen case. You can simply follow step 2 to 6. Then mirroring the display. After that, you will have a eGPU-Accelerated full screen application working fine with your internal display.

    Sometimes, the application will launch from second display, I don’t know why. You can solve it by switching the primary display then launch and mirroring. It looks like impossible to launch Steam client on second display.

    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)

    1. Post
      Author
    1. Post
      Author
  4. See here!

    PICTURES:

    • How to build you DVI dummy display using a 80-100 ohm resistor on C2/C5 pins of the DVI connector!

    See here!

    I don’t think you need links, there is plenty of guides for build DIY ghost adapter. It is worth to mention them, along commercial solutions.

    Since from long time i saw the discussion move forward, but none of these guides where mentioned.


    A simple resistor is enough, admins do not implemented in the post the DIY HDMI/DVI ghost adapter, only commercial solutions!

    Instead if you don’t want to spend, just get a HDMI to DVI adapter and build your own ghost adapter using a 80/100Ohm  resistor.

  5. I got ordered of these
    https://www.amazon.com/gp/product/B00JKFTYA8/
    Would this be fine?
     
    I own a macbook pro 15″ mid 2015 (with dedicated radeon) and ordered the aikito node, thunderbolt to usb-C adapter and thunderbolt cable.
    Hope it all works 🙂 For me it’s all for gaming in windows (bootcamp) on the internal display. Still deciding in which graphics card to buy. (Edit: Decided to go with nvidia 980 6 gb, as opposed to 1060 6 gb since apparantely the 980 usually outperforms the 1060 card still.
    Should get all of those things next week.

  6. In High Sierra, I have iStat Menus installed to monitor which gpu is being used, and when switching the app from running on the headless display to the internal display you can see it switch from the eGPU to the internal dGPU. If you mirror the headless display and the internal display it seems to accelerate on the eGPU correctly. 

  7. Posted by: ricosuave0922
    In High Sierra, I have iStat Menus installed to monitor which gpu is being used, and when switching the app from running on the headless display to the internal display you can see it switch from the eGPU to the internal dGPU. If you mirror the headless display and the internal display it seems to accelerate on the eGPU correctly. 

    I have iStat here as well but can’t figure out how to get to the GPU monitoring part. How do you do that?

  8. how do I accelerate both screen internal and external?

    I have tried to set main screen to external via display port connected to the egpu and mirror the internal into the hdmi dummy plug also connected to the egpu

    with the adapter I got rid of the flickering apps like safari and also pro apps such as Maya, substance painter and designer and marmoset toolbag

    BUT, it seems that Maya can’t see properly the graphics cards!

  9. I tried it once a few months ago. It’s a pretty sketchy solution to the problem IMHO. I do not recommend this to anyone who asks, but if you’ve got a spare host you can use to test, that won’t interfere with your main working computer if something goes wrong, you could give it a shot. Not sure what kind of “damages” are being described earlier but like I said… sketchy.

  10. Posted by: limozeen
    1. Plug in eGPU
    2. Plug in headless adapter (to eGPU)
    3. In System Preferences –> “Displays” drag the white bar over to the headless adapter “screen” to make that your primary display.
    4. While holding down the option key, click on the white rectangle representing your laptop’s internal display and hold. Continuing to hold the option key, simply drag and drop your laptop display rectangle on top of the headless adapter ‘display’ rectangle.
    Done.
    MetalBench calculations show my performance hit (vs. an accelerated external display) to be only 10%. (For me the difference is 720% faster than dGPU vs. 645% faster than dGPU. No brainer.)

    Can you please provide more details on your setup?

    Computer, external monitor (if any), graphics card and software or hacks you used to get this to work. 

    Im really wanting a eGPU connected to my 2017 MacBook Pro and LG 5K monitor and this sounds like it might work

  11. Success with this method for MBP w/TB 2016 10.13.6 and using geekbench to verify acceleration. But a few issues. I lose my finder/apps side bar from either screen and have to open apps through search function in upper right corner. Also it becomes difficult to determine which screen is regular and which is accelerated as the “switching” option feels broken after I switch a few times… maybe it takes some getting used to. Also not sure about this “1440×900 60Hz” setting that I’m matching for internal and ghost external… MBP has retina display and I’m confused why this seems to be the go-to setting to get everything working right.

Leave a Reply

Your email address will not be published. Required fields are marked *