Setup & Software Discussions
2012 13" MacBook Air [3rd,2C,U] + RX 570 @ 10Gbps-TB1 (AKiTiO Thunder2) + macOS ...
 

2012 13" MacBook Air [3rd,2C,U] + RX 570 @ 10Gbps-TB1 (AKiTiO Thunder2) + macOS 10.14.6 [TuxThePenguin0]  

  RSS

TuxThePenguin0
(@tuxthepenguin0)
Active Member
Joined: 10 months ago
 

System specs

Mid 2012 13" MacBook Air, i5 [email protected], 4GB RAM, 128GB SSD, Intel HD 4000 1536MB

MacOS Mojave 10.14.6

 

eGPU hardware

It's the same enclosure as my W540 build here, this was mostly an experiment since I have this Mac now and I am using it with an officially supported version of MacOS unlike my ill-fated 2011 MacBook Pro build with the same enclosure that ended up being replaced not long after I got it working in Linux.

" Akitio Thunder2 that has had the end of the internal frame cut off and is being powered by a 500W ATX power supply. It has an MSI Armor  RX 570 connected to it"

 

Hardware pictures

Coming as soon as I remember to take pictures while I'm not busy using the eGPU

 

Installation steps

Pretty standard TB1/2 eGPU setup on MacOS, I just ran purge wrangler, connected the eGPU and it all worked great with one exception, that I have mentioned later in this build.

 

Benchmarks

Geekbench 5 OpenCL:
- HD 4000: 1034
- RX 570: 34726

Geekbench 5 Metal:
- HD 4000: 191 (Yes you read that right)
- RX 570: 28496

Geekbench 4 OpenCL:
- HD 4000: 6084
- RX 570: 100598

Unigine Heaven Extreme:
- HD 4000: Crash!
- RX 570 on external display: 780
- RX 570 on internal display: 627

 

Comments

First thing to note, if you happen to have an older Macbook Air like this one and you want more GPU performance to play games don't do this. You are better off buying an old office PC and putting in a higher end GPU because of the price of Thunderbolt (especially TB2) enclosures. The only reason I did this is because I already had the eGPU from my main setup and wanted to do some experimentation, not to mention on occasion I might want the extra monitors with MacOS.

Anyway, as shown by the benchmarks, compared to the 7 year old ULV iGPU the RX 570 is an absolute monster, even scoring over 100k in Geekbench 4 when the iGPU only got around 6k.

I don't plan to use this since I mostly use the eGPU with my Thinkpad in the build I linked earlier, however once I get a new cable and set up my small Thunderbolt network (yay!) I will probably use it a bit for when I need MacOS specific software.

The only issue is one that I expected where due to some issues with how the RX 570 uses power it can crash if not locked to a single frequency, likely due to the constant state switching causing the voltage to go all over the place and crashing the GPU (a 500W PSU should be plenty for just an RX 570, it ran that same GPU in a desktop with a Xeon before I started using it as an eGPU), if someone knows of a way to manually set the GPU power state in MacOS, leaving a comment would be greatly appreciated.

This topic was modified 4 weeks ago

Lenovo Thinkpad W540 (i7 4700MQ, 20GB RAM, Dead Quadro K1100m, 500GB SSD, 500GB HDD)
2012 13" Macbook Air (i5 3427U, 4GB RAM, Intel HD 4000, 120GB SSD)
AMD RX 570 eGPU


itsage liked
ReplyQuote
itsage
(@itsage)
Famed Member Admin
Joined: 3 years ago
 

@tuxthepenguin0 macOS is finicky when it comes to high refresh rate monitors. Are you currently using a DisplayPort cable to connect the RX 570 eGPU to the 144 Hz monitor? If not, I’d say to give that a try and whether it helps getting a higher refresh rate.

 

Best ultrabooks for eGPU use

eGPU enclosure buying guide


ReplyQuote
TuxThePenguin0
(@tuxthepenguin0)
Active Member
Joined: 10 months ago
 

@itsage
I have been using a HDMI cable because of some compatibility issues with DisplayPort on this system, at first it worked fine in Linux but was constantly blanking out in Windows.
Then it got fixed in Windows but now I can't set the refresh rate over 60hz reliably in Windows or Linux.

Lenovo Thinkpad W540 (i7 4700MQ, 20GB RAM, Dead Quadro K1100m, 500GB SSD, 500GB HDD)
2012 13" Macbook Air (i5 3427U, 4GB RAM, Intel HD 4000, 120GB SSD)
AMD RX 570 eGPU


ReplyQuote
joevt
(@joevt)
Honorable Member
Joined: 2 years ago
 

Is the Kogan 144 Hz display only 1920x1080? That only requires a 346 MHz pixel clock which even DisplayPort 1.1 can do, maybe. What's the model number? Is it DisplayPort 1.1 or Displayport 1.2? Two or four lanes? Is it HDMI 1.4 or HDMI 2.0?

The following command in macOS using DisplayPort will give some useful info:

/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_a.txt 2>&1

Did you try SwitchResX to use or create higher refresh rates?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
TuxThePenguin0
(@tuxthepenguin0)
Active Member
Joined: 10 months ago
 

@joevt

Yes the display is only 1920x1080, the specific model number is "KALED24144F".
I'm not sure which version of DP it's using or how many lanes it uses, I haven't looked into it much since, at least until now, the easier workaround has just been to use HDMI.
I didn't try using SwitchResX, mostly because if at all possible I would rather not use it since it is paid software (I have nothing against paying for software, I just prefer to use built in utilities if possible).
When I did use SwitchResX to look at the supported resolutions there are a few including interlaced and progressive scan at both 60 and 50hz as well as progressive scan at 24hz but all of them including resolutions below 1080p appear pink (possibly as if the GPU is outputting RGB565 while the monitor is expecting RGB888?)

Lenovo Thinkpad W540 (i7 4700MQ, 20GB RAM, Dead Quadro K1100m, 500GB SSD, 500GB HDD)
2012 13" Macbook Air (i5 3427U, 4GB RAM, Intel HD 4000, 120GB SSD)
AMD RX 570 eGPU


ReplyQuote
joevt
(@joevt)
Honorable Member
Joined: 2 years ago
 

@tuxthepenguin0

You have the display connected using HDMI. The display's EDID has a 1080p 144 Hz timing using 326.66 MHz pixel clock. HDMI 1.4 can go up to 340 MHz so it should be ok. The EDID also has a 120 MHz timing.

I've attached a folder containing the EDID info of your three displays.

With HDMI, use SwitchResX and get a screenshot of the monitor Display Information tab, and the Current Resolutions tab.

Disconnect the HDMI, connect DisplayPort, and redo the AGDCDiagnose command so we can get info from the DisplayPort port. Also redo the SwitchResX screenshots.

I don't know why the monitor would output pink. You can try installing the included DisplayVendorID-2cee folder to /System/Library/Displays/Contents/Resources/Overrides
The folder contains an EDID override that removes YCbCr modes and chroma subampling. Maybe it will remove the pink. Before doing that, maybe check the monitor OSD (menu) to see if there's any related color space options (RGB / YCbCr or whatever).

I wonder if you need a pixel clock patch?
https://github.com/Floris497/mac-pixel-clock-patch-V2
https://github.com/Floris497/mac-pixel-clock-patch-V2/issues/142

I would really try to avoid HDMI if possible and use DisplayPort. Then you don't need a pixel clock patch. The manual for the display can be found at:
https://help.kogan.com/hc/en-us/articles/360019312814
Product info can be found at:
https://www.kogan.com/au/buy/kogan-24-full-hd-curved-144hz-freesync-gaming-monitor-1920-x-1080/

Try disabling FreeSync when using DisplayPort.

Actually, the manual I linked is for KAMN24F1CLA. I can't find a manual for the KALED24144F which mentions a DisplayPort connection. What ports does your display have?

This post was modified 4 weeks ago

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


itsage liked
ReplyQuote
TuxThePenguin0
(@tuxthepenguin0)
Active Member
Joined: 10 months ago
 

@joevt

So as it turns out the recent AMD software updates for Windows and Linux (I have not been keeping up to date because it's a bit of a hassle) seem to have completely fixed the issues that were occurring in those Ones (in Windows it would constantly blank out no mater what and in Linux it wouldn't display anything until I changed the resolution at least once).
In MacOS when using the DisplayPort cable everything works as intended, so it has full 120 and 144hz support with no colour issues (scrolling in MacOS is ridiculously smooth at 144hz :P).

For reference the display has VGA, DVI-I, HDMI and DisplayPort inputs, also likely the reason you are unable to find a manual is that not long after I bought the monitor (probably about a year and a half ago now) it was discontinued and replaced with the curved version.

So now that is working it seems that the only issue is that I cannot lock the power state in MacOS so it is likely that the eGPU will be unstable during general usage, although it is fine when playing games because it is always in the highest power state it often crashes due to an issue with the constant changing of power states, if I can get that fixed it would make this setup pretty much perfect.

Lenovo Thinkpad W540 (i7 4700MQ, 20GB RAM, Dead Quadro K1100m, 500GB SSD, 500GB HDD)
2012 13" Macbook Air (i5 3427U, 4GB RAM, Intel HD 4000, 120GB SSD)
AMD RX 570 eGPU


ReplyQuote
joevt
(@joevt)
Honorable Member
Joined: 2 years ago
 

@tuxthepenguin0

Glad you got it working. I noticed something strange in the HDMI EDID for the 144 Hz timing. The horizontal blanking is less than the sum of the horizontal front porch and horizontal sync width. What does SwitchResX report for those values in the 144 Hz timing for HDMI?

I made a modification to the EDID override that reduces the horizontal front porch and sync width, but I guess it's not needed, and anyway, it should be compared with the DisplayPort EDID first. Can you do the AGDCDiagnose command in macOS while the display is connected to DisplayPort? I would like to see if the DisplayPort EDID is different than the HDMI EDID.

The power state problem seems strange. Akitio Thunder2 only provides 25W to the x16 slot. Maybe the card wants more from the slot (probably not - GPUs should be smart enough to know when a slot is not providing 75W). Maybe connect a fan or other load to the power supply. Maybe use a riser that has an external power connector. Maybe keep a 3D animation running in the background 🙂

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
TuxThePenguin0
(@tuxthepenguin0)
Active Member
Joined: 10 months ago
 

@joevt

So I have attached the output of the AGDC diagnose command with the monitor connected via DisplayPort.

I don't think that the issue is the Akitio Thunder2 because I'm not even sure if it has any components between it's own 12V supply and the 12V supply going to the PCIe slot, not to mention that I have soldered some pins from the 24pin power connector on the ATX PSU to some pins on the board where the power would normally end up if it were coming from the normal power supply (this was so that I didn't damage the barrel jack with too much current and so that I only needed one PSU). As far as I can tell the issue is because of a lack of any other load on the PSU, maybe at some point I will have to try powering a few of my other things off of the enclosure although it would be good if I could find a way of locking the power state.

Lenovo Thinkpad W540 (i7 4700MQ, 20GB RAM, Dead Quadro K1100m, 500GB SSD, 500GB HDD)
2012 13" Macbook Air (i5 3427U, 4GB RAM, Intel HD 4000, 120GB SSD)
AMD RX 570 eGPU


ReplyQuote
joevt
(@joevt)
Honorable Member
Joined: 2 years ago
 

@tuxthepenguin0

For completeness, I've attached updated results including the EDID from your DisplayPort. Ignore the override file because it uses the HDMI EDID which you don't want when using DisplayPort. I don't know if there's a way to make an override that applies only to one of the inputs since both the HDMI and DisplayPort EDIDs have the same product, vendor, and date values.

The 144 Hz timing in the DP EDID is more reasonable (doesn't have the horizontal sync pulse exceeding the horizontal blanking period) than the one in the HDMI EDID but I don't know if it's usable in the HDMI EDID since the pixel clock of 333.22 MHz in the DP timing exceeds the 330 MHz limit described in the HDMI EDID. My override HDMI EDID preserves the pixel clock (326.660 MHz) and scan rates of the 144 Hz timing in the original HDMI EDID by just reducing the horizontal front porch and sync pulse width.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
TuxThePenguin0
(@tuxthepenguin0)
Active Member
Joined: 10 months ago
 

I just realised something that is very interesting after having used the eGPU with the Macbook Air for a day, with the Macbook Air (and I think possibly also the Macbook Pro) the power issues that have been happening with my eGPU don't happen, I have been using it all day with perfect stability when normally it would have crashed multiple times, they seem to only happen with my Thinkpad, I'll have to look into this more since I do recall not having the issues when I tried using the eGPU with my Macbook Pro for a few weeks.

Lenovo Thinkpad W540 (i7 4700MQ, 20GB RAM, Dead Quadro K1100m, 500GB SSD, 500GB HDD)
2012 13" Macbook Air (i5 3427U, 4GB RAM, Intel HD 4000, 120GB SSD)
AMD RX 570 eGPU


ReplyQuote