Contribute
Register

Radeon RX 560 on 10.13.4 macOS High Sierra

Status
Not open for further replies.
Joined
Mar 29, 2011
Messages
228
Motherboard
GA-Z170X-UD3 (F23g)
CPU
Intel Core i5-7400
Graphics
Asus Radeon RX 560 4GB
There is a lot of information on different threads about Radeon RX 560 on macOS High Sierra 10.13.4, so I thought it deserves a dedicated thread.
Update: Due to recent improvements, I would advise everyone to use
Lilu https://github.com/vit9696/Lilu/releases
IntelGraphicsFixup https://github.com/lvs1974/IntelGraphicsFixup/releases
WhateverGreen https://github.com/vit9696/WhateverGreen/releases
for better stability and power management.


In 10.13.4 beta 6, beta 7 and 10.13.4 release version I got my Asus Radeon RX 560 4GB working with SMBIOS
iMac18,2 (which matches my Intel i5-7400 processor) in these ways:
1. With Inject ATI in config.plist
The card shows up in System Profiler as AMD Radeon Pro 555, DP audio is not working
Code:
<key>Graphics</key>
    <dict>
        <key>Inject</key>
        <dict>
            <key>ATI</key>
            <true/>
            <key>Intel</key>
            <true/>
        </dict>
        <key>ig-platform-id</key>
        <string>0x59120003</string>
    </dict>
2. With Lilu and WhateverGreen in Clover/kexts/Other.
The card shows up in System Profiler as Radeon RX 560 and DP audio is working.
I have made some tests in beta 7 and I got 5594 in LuxMarkv3.1 with WhateverGreen and 5544 wit Inject ATI, 96.28 fps in Cinebench R15 with WhateverGreen and 96.68 fps with Inject ATI.

3. By disabling board-id check in AppleGraphicsDevicePolicy to prevent no signal (© lvs1974, Pike R. Alpha, vit9696) Thanks to @brixx
The card is seen as Radeon RX 560, DP audio is not working
Code:
<key>KextsToPatch</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>Disable board-id check to prevent no signal © lvs1974, Pike R. Alpha, vit9696</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                ugUAAAA=
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>com.apple.driver.AppleGraphicsDevicePolicy</string>
                <key>Replace</key>
                <data>
                ugAAAAA=
                </data>
            </dict>
        </array>
4. AppleGraphicsDevicePolicy patch (c)Pike R. Alpha thanks to @Krepki
The card is seen as Radeon RX 560, DP audio is not working
Code:
<key>KextsToPatch</key>
        <array>
            <dict>
                <key>Comment</key>
                <string>(c)Pike R. Alpha</string>
                <key>Disabled</key>
                <false/>
                <key>Find</key>
                <data>
                Ym9hcmQtaWQ=
                </data>
                <key>InfoPlistPatch</key>
                <false/>
                <key>Name</key>
                <string>AppleGraphicsDevicePolicy</string>
                <key>Replace</key>
                <data>
                Ym9hcmQtaXg=
                </data>
            </dict>
        </array>

According to @P1LGRIM with iMac14,2 SMBIOS:
Mine is connected to a DVI monitor with a DVI cable.
No injectors.
No additional kexts.
RadeonDeinit set to false.
Without Intel graphics.
iMac14,2 SMBIOS.

Please fell free to share your settings and troubles with RX 560 in this thread @UtterDisbelief @ashman70 @raymondau @Satelli @bortoni @JozoR @balazs631 @carlos16166
 
Last edited:
Do you think it would work with WhateverGreen but with injectATI set to false?

I thought one was not supposed to use injectATI with WhateverGreen (or Radeondeinit)?
 
Do you think it would work with WhateverGreen but with injectATI set to false? I thought one was not supposed to use injectATI with WhateverGreen (or Radeondeinit)?
If you use Lilu & WhateverGreen, you can safely delete <key>ATI</key> <true/>
Radeondeinit doesn't seem to make any difference to my system, I don't have it in config.plist.
 
My config:

iMac17,1
RX560 only displayport (not using audio)
HD530 intel (not connected but enabled in BIOS)
Everything was working in 10.13.3

What did not work:
  • Disabling RadeonInit
  • Installing update
  • Gave me a black screen during install

So, I restored from cloned drive and tried again.

What worked:

  • Updated Clover
  • Installed latest WhateverGreen
  • Set RadeonInit to false
  • Rebooted to make sure all still worked in 10.13.3
  • Updated

All works in 10.13.4 now
 
A lot of this came from following posts from @shuhung . A lot of credit goes to him.

Prior config on 10.13.3:

iMac18,3
RX560 with display port on 4k screen, Second monitor with DVI
HD630 intel (not connected but enabled in BIOS)

Updated clover (r4411).
Custom SSDT-AMD.aml to reinit the RX560 as well as select the Acre FrameBuffer. This was then combined with a connector patch in the config.plist

In this manner, I did NOT use whatevergreen or RadeonDeInit in config file.

Current Config on 10.13.4:
1) Removed: SSDT-AMD.aml from CLOVER->ACPI->patched
2) Removed: X4250.kext, AMD9xxxControllerPatcher.kext from CLOVER->Kexts->Other
3) Added: Acre.kext and RX560.kext to CLOVER->Kexts->Other
4) Change config.plist:
a) Set Inject ATI to false
b) Disable / remove the connector patch for RX560​


See attached list for all kexts I'm using.

Rationale:

With this update Apple did major work with graphics and previous hacks and workarounds are not needed. Previously I used the SSDT-AMD.aml to reinit the RX560 as well as select the Acre FrameBuffer. This was then combined with a connector patch in the config.plist. The X4250 kext patched theAMDRadeonX4250.kext to enable HEVC decoding in the RX560 and the AMD9xxxControllerPatcher.kext patched some items such as CFG_FB_LIMIT.

With 10.13.4 the X4250Controller was removed. So the approach now is to use the generic framebuffer the OS constructs and tweak it to give it the properties from the Acre buffer.

The RX560.kext injects properties to 9500C + X4000 and should work with RX460 as well.
Acre.kext: inject Acre FB properties to common ATY framebuffer in 9500 FB controller.
 

Attachments

  • Screen Shot 2018-04-02 at 8.05.25 AM.png
    Screen Shot 2018-04-02 at 8.05.25 AM.png
    62.3 KB · Views: 1,281
  • RX560.kext.zip
    3.3 KB · Views: 1,189
  • Acre.kext.zip
    2.7 KB · Views: 911
A lot of this came from following posts from @shuhung . A lot of credit goes to him.

Prior config on 10.13.3:

iMac18,3
RX560 with display port on 4k screen, Second monitor with DVI
HD630 intel (not connected but enabled in BIOS)

Updated clover (r4411).
Custom SSDT-AMD.aml to reinit the RX560 as well as select the Acre FrameBuffer. This was then combined with a connector patch in the config.plist

In this manner, I did NOT use whatevergreen or RadeonDeInit in config file.

Current Config on 10.13.4:
1) Removed: SSDT-AMD.aml from CLOVER->ACPI->patched
2) Removed: X4250.kext, AMD9xxxControllerPatcher.kext from CLOVER->Kexts->Other
3) Added: Acre.kext and RX560.kext to CLOVER->Kexts->Other
4) Change config.plist:
a) Set Inject ATI to false
b) Disable / remove the connector patch for RX560​


See attached list for all kexts I'm using.

Rationale:

With this update Apple did major work with graphics and previous hacks and workarounds are not needed. Previously I used the SSDT-AMD.aml to reinit the RX560 as well as select the Acre FrameBuffer. This was then combined with a connector patch in the config.plist. The X4250 kext patched theAMDRadeonX4250.kext to enable HEVC decoding in the RX560 and the AMD9xxxControllerPatcher.kext patched some items such as CFG_FB_LIMIT.

With 10.13.4 the X4250Controller was removed. So the approach now is to use the generic framebuffer the OS constructs and tweak it to give it the properties from the Acre buffer.

The RX560.kext injects properties to 9500C + X4000 and should work with RX460 as well.
Acre.kext: inject Acre FB properties to common ATY framebuffer in 9500 FB controller.
What's the difference to this approach or using Lilu+Whathevergreen? I'm still using those and everything is working fine for me (10.13.4 + RX560)
 
There is a lot of information on different threads about Radeon RX 560 on macOS High Sierra 10.13.4, so I thought it deserves a dedicated thread.
In 10.13.4 beta 6, beta 7 and 10.13.4 release version I got my Asus Radeon RX 560 4GB working with SMBIOS
iMac18,2 (which matches my Intel i5-7400 processor) in two ways:
1. With Inject ATI in config.plist. The card shows up in System Profiler as AMD Radeon Pro 555.
Code:
<key>Graphics</key>
    <dict>
        <key>Inject</key>
        <dict>
            <key>ATI</key>
            <true/>
            <key>Intel</key>
            <true/>
        </dict>
        <key>ig-platform-id</key>
        <string>0x59120003</string>
    </dict>
2. With Lilu and WhateverGreen in Clover/kexts/Other. The card shows up in System Profiler as Radeon RX 560 and DP audio is working.
I have made some tests in beta 7 and I got 5594 in LuxMarkv3.1 with WhateverGreen and 5544 wit Inject ATI, 96.28 fps in Cinebench R15 with WhateverGreen and 96.68 fps with Inject ATI.

According to @P1LGRIM with iMac14,2 SMBIOS:


Please fell free to share your settings and troubles with RX 560 in this thread @UtterDisbelief @ashman70 @raymondau @Satelli @bortoni @JozoR @balazs631 @carlos16166

Okay, good idea :thumbup:

I was a bit worried about experimenting with 10.13.4 but what I've read hinted at a possible break-through.
iGPU is set to Auto in BIOS which basically means it's turned-off once the discrete GPU is seen.
I have never used the Inject ATI flag either.

1) Firstly I just removed the Lilu.kext and Whatevergreen.kext.

Rebooted.

Everything worked as before. RX 560 correctly recognised in About this Mac and fully accelerated.

2) Still without the kexts I changed RadeonDeInit to "False" in config.plist.

Rebooted.

Everything is working as before. Full acceleration it seems and correctly recognised:

A2.jpg


B.jpeg


In previous OS versions I saw Radeon Pro 560 with the kexts and R9 xxx with out them but RadeonDeInit set to true.
For 10.13.4 the results were the same with or without the kexts and RadeonDeInit.

So unless I'm missing something, for my system this seems to imply the RX 560 is now recognised as native (?).

:)
 
Last edited:
Okay, good idea :thumbup:

I was a bit worried about experimenting with 10.13.4 but what I've read hinted at a possible break-through.
iGPU is set to Auto in BIOS which basically means it's turned-off once the discrete GPU is seen.
I have never used the Inject ATI flag either.

1) Firstly I just removed the Lilu.kext and Whatevergreen.kext.

Rebooted.

Everything worked as before. RX 560 correctly recognised in About this Mac and fully accelerated.

2) Still without the kexts I changed RadeonDeInit to "False" in config.plist.

Rebooted.

Everything is working as before. Full acceleration it seems and correctly recognised:


In previous OS versions I saw Radeon Pro 560 with the kexts and R9 xxx with out them but RadeonDeInit set to true.
For 10.13.4 the results were the same with or without the kexts and RadeonDeInit.

So unless I'm missing something, for my system this seems to imply the RX 560 is now recognised as native (?).

:)


Yes. The only thing I think you might be missing running w/o IGPU is x264 encoding... so, quicktime screen recording, Keynote Export as movie, some Final Cut Pro exporting as h264 etc. If you never do this, then you're ok.

I need to do this a lot so that is why I enable iGPU in headless mode.
 
What's the difference to this approach or using Lilu+Whathevergreen? I'm still using those and everything is working fine for me (10.13.4 + RX560)

My general philosophy with my hack is to try and reduce the number of changes from stock if possible. So if I can reduce this, future updates / interactions are improved. Other than that, yes WhateverGreen etc is fine.

Also, note the things I'm NOT doing... no use for DP or HDMI audio, I use USB audio for this same reason... these things usually require many tweaks and patches that I prefer to avoid.
 
I coudn't get my system to recognise RX 560 as native, but I can't turn off the Intel iGPU as I use it for x264/x265 encoding (iMovie/QuickTime).
About the FrameBuffers, I get ATY,Acre with Inject ATI
inject.jpg
ATY,AMD,RadeonFramebuffer with WhateverGreen
what.jpg
Regardless of the method, the following kexts appear as loaded: AMD9500Controller, AMDFramebuffer, AMDRadeonX4000, AMDRadeonX4000HWLibs, AMDRadeonX4000HWServices, AMDSupport.
 
Status
Not open for further replies.
Back
Top