2012 13" MacBook Air [3rd,2C,U] + RX 570 @ 10Gbps-TB1 (AKiTiO Thunder2) + macOS 10.14.6 [TuxThePenguin0]
MacOS Mojave 10.14.6
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.
Coming as soon as I remember to take pictures while I'm not busy using the eGPU
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.
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.
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.
@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.
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.
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?
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?)
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?
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:
Product info can be found at:
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?
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.
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 🙂
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.
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.
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.