Jump to content

2012 Retina Macbook Pro eGPU on OS X - working but internal dGPU is doing the rendering?!


r00x

Recommended Posts

Hi there, lots of useful info on here! Still I need to ask a few questions as my setup isn't quite working!

 

I've a 2012 rMBP on El Capitan 10.11.2 and I used the automate_eGPU.sh script to quickly sort out the modification of files and installation of NVIDIA web drivers. 

 

I'm testing it with an NVIDIA GTS450 which is connected via a Sonnet Echo Pro and PE4C 3.0. SW1 is set to 2 (PERST# delay 9.8sec), SW2 to 1 (CLK no delay).

 

It's picked up fine in OS X and I can drive an external monitor with it no problem. However, it doesn't appear to be doing any rendering - all the legwork is still being done by the internal GT650M!!! It shows each screen as being driven by the GT650M in About This Mac, and testing with games seems to corroborate this. What gives? I can't find any examples online of other people who've had this problem (at least in OS X). The GTS450 is correctly identified in System Information.

 

 

A second question... I know there isn't a way to get the output on the internal LCD on Windows on this Macbook due to it having a dGPU and Apple's rubbish firmware, but is that the case in OS X? The Intel HD4000 is accessible there, does that mean I could funnel the graphics back to the internal LCD or is it just impossible on all counts?

 

Link to comment
Share on other sites

Hi Dschijn, I did try fiddling with the display arrangements. I could change the mirroring settings between no mirroring (extend displays - GT650m did all the rendering), mirror the internal display (GT650m does everything again) and mirror the external display on the eGPU (in which case, it *said* the eGPU was doing all the work).

 

However, it only claimed the eGPU was doing anything. It actually seemed to be idle. So by mirroring the external display on the eGPU, it made About This Mac show each screen as being driven by the eGPU - however, when trying something like Unigine Heaven it was clear the internal dGPU was still doing the rendering.

 

Not sure how to proceed, the eGPU is powering up and detected and working perfectly well to drive the monitor but I can't get it to actually do any rendering even by changing the mirroring settings!!

 

Is this what you meant by setting it to be the primary display? I'm not aware of any other option to control primary/secondary displays in OS X... perhaps if I drag the menu bar to the eGPU display in the Display Arrangement window maybe?

 

Link to comment
Share on other sites

You should extend the "view" so that you not mirror and make the external (connected directly to the eGPU, not the Mac or TB) monitor the primary. Now all the apps started on the main display will work with the eGPU. The internal will still run on the dGPU.

Maybe the system info doesn't display it correctly. Test it with a benchmark like Ungine Heaven…

Link to comment
Share on other sites

Ah, I see!! I disabling mirroring and dragged the menu bar to the external monitor in Display Arrangement (ostensibly setting it as the primary?) and now it works. I can hear the Vregs in the eGPU whine under load and the performance is much greater in Unigine! Thanks very much for the tip.

 

It seems I can also drag the window back to the internal LCD and it still uses the eGPU, however, I have a new problem... The performance seems to skip a lot... as in every second or so it pauses for about 100ms? This is true even in the normal OS X desktop - for instance if I drag a window around, it moves smoothly but skips/judders every other second. Or for instance playing a YouTube video, it seems to judder at regular intervals instead of playing smoothly. (side note: if I play YouTube fullscreen, and leave it in focus, it plays smoothly...) is this a common issue?

Link to comment
Share on other sites

  • 2 weeks later...

I'm experiencing the same issue. EVGA GTX 970 + Akitio 2 on a 2014 15" MacBook Pro under OSX 10.11.3. The card is identified and installed correctly with the 0.96 eGPU script.. but performance on the Desktop lags really bad with stutters, animation problems etc. Running a game though is fine... I also tried different drivers but the problem remains the same.

 

any help would be greatly appreciated.

Link to comment
Share on other sites

Hi willex - what happens when you run stuff fullscreen? For instance if you maximise the Finder/browser window/YouTube? I've done a little more testing - it seems fullscreening anything will get rid of the judder on the external monitor. For example, fullscreening Finder will let it run smoothly, whereas when it's just a window on the OS X desktop, it exhibits the same skipping/juddering every second or so.

 

Having said that, since I switched from the Nvidia web drivers back to OS X standard ones (using the menu bar icon/Nvidia driver manager thing) it seemed to run a bit better too. Certainly more games work than before, barely any games launched (fullscreen, anyway) with the Nvidia web drivers but plenty worked fine on the original OS X ones.

 

I've since found it's a lot better an experience on Windows, but there I have a separate issue, which is I have to disable the internal GT650m dGPU in Device Manager before the eGPU can activate, I guess because for some reason PCI compaction isn't working.

 

 

Link to comment
Share on other sites

yes, fullscreen works - less or no stutter; just the main Desktop experience shows performance issues. I'm pretty sure it's because of the dGPU that some handling is not done correctly or the eGPU streams data through the iGPU... something along those lines. I have no problems in Windows with the card though. Runs perfectly - using the dGPU (750m) as dedicated PhysX card.

Link to comment
Share on other sites

I seem to have the same issues as above, regarding stutters and lag. Using SwitchResX I disabled the internal monitor, and still perceived consistent stutters - I do not know whether your linked script, @Dschijn, does it differently. It was using a 980 ti and a cheap-o PCIe riser - though I have to say, performance was buttery smooth in Windows 10 with no perceived lag and way over 60fps in GTA5 4k at near-maxed settings - again, without any lag.

 

Any ideas? Currently considering going full into the e-GPU platform with 3x4k monitors, and obviously I won't be able to use those with my MacBook Pro 13" Retina from Late 2012 without and e-GPU - I'm using the AkTiO Thunder 2 case, by the way with an external PSU.

Link to comment
Share on other sites

This is the app: https://github.com/Eun/DisableMonitor

I don't have long time experience with the eGPU in OSX. Can try and use it tomorrow the wole evening.

What seemed to work for me:

- download the app

- disable the internal display by the app

- close the lid

- use it totally on the external display

Link to comment
Share on other sites

  • 9 months later...

@Dschijn Thank you!! i came across this thread having this same exact problem.  I am running an LG Cinema 4K display at 4096X2160 @ 60Hz on my MacBook Pro Retina 2013 and was trying everything to get rid of the stutter in video play back.  The disable monitor solution works perfect.  Once i disabled the internal monitor the external monitor performance was butter! With en eGPU like the Nvidia 980 Ti connected to my rMBP i dont see any reason to change out my laptop anytime soon!

  • Thumbs Up 1
Link to comment
Share on other sites

  • 3 months later...

Thank you very much, I have MBP 15" retina mid 2015 on OS Sierra 10.12.3. My problem at this moment is that after the csrutil disable then i press return and it says the SIP is disable successfully, then I type reboot and press return, the system will reboot back to OS normally showing Apple logo and requesting me to login instead of rebooting back in the terminal for me to use the goalque automate script, the same thing on my iMac 27" late 2012 with the same Sierra 10.12.3. 

Link to comment
Share on other sites

On 02/02/2016 at 9:14 AM, willex said:

I'm experiencing the same issue. EVGA GTX 970 + Akitio 2 on a 2014 15" MacBook Pro under OSX 10.11.3. The card is identified and installed correctly with the 0.96 eGPU script.. but performance on the Desktop lags really bad with stutters, animation problems etc. Running a game though is fine... I also tried different drivers but the problem remains the same.

 

any help would be greatly appreciated.

 

Try enabling "displays have separate spaces" in the window shown here. Screen Shot 2017-02-17 at 5.43.27 am.png

Picked that up off the build I followed in the implementation section. 

 

Interesting about the disable monitors app, I'll have to look into that. I seemed to work out my kinks by just making the external monitor the main display and leaving the laptop open on the right of the desk, so I can use essentially a dual-monitor setup. 

Edited by Irons324
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.