Radeon RX 580 8 GB graphics card on macOS High Sierra (as of 10.13.6), Mojave and Catalina on the P55-USB3 board: excellent performance with acceleration (Metal) OOB, no need for drivers (kexts), with 3 drawbacks, one has to do with the boot of the operating system (a solution is proposed), another with the number of rear connectors enabled (a solution is proposed) and another that only affects to one phase of the Mojave or Catalina installation (without clear solution for now).
I have placed the XFX AMD Radeon RX-580 P8DFD6 8GB Triple X Edition GDDR5, 256BIT, DVI + HDMI + 3DP graphics card on a 10 year old motherboard (Gigabyte P55-USB3) in order to update the hackintosh to 10.14 Mojave and 10.15 Catalina because the card that I have used in past years, Nvidia Geforce GTX 750 1GB, has stopped working after 10.13.6 High Sierra since this was the last version for which Nvidia published the alternate web drivers that were necessary for the card to work well with graphic acceleration.
The new RX 580 card needs considerably more space than the old one although it fits perfectly in an ATX case, and requires an additional power connector. It has 2 big fans that most of the time are stopped, at least in my case. In macOS it works perfectly, even with Metal acceleration, without additional drivers and without extra settings in Clover. But it has drawbacks that I comment below.
Alterations during startup
During the boot of the operating system, when the screen goes from the basic driver to the AMD driver, 2 artifacts appear randomly, they are very short in duration (from one to a few seconds):
Very short flashing white screen that may or may not be accompanied by purple lines The fans runs for a few seconds (the noise is clearly audible). This behavior is solved with the installation of 2 kexts, Lilu and WhateverGreen. Lilu is an extension created by acidantheraand vit9696 among others whose function is to help to patch kexts, processes and libraries during macOS boot. It is accompanied by specific plugins for the task required, for example WhateverGreen that injects necessary patches for certain AMD, Intel and Nvidia graphics cards. It is mandatory to have both extensions together, one of them separately does not correct the problem.
I have installed Lilu 1.4.4 and WhateverGreen 1.3.9 in the EFI/CLOVER/kexts/Other folder of the EFI partition and artifacts have disappeared. Remember that these 2 extensions are not necessary for the card to work properly, if you tolerate those very brief distortions of the screen or the noise of the fans running for a few seconds, you can live without Lilu and WhateverGreen.
Note: authors recommend that when using Lilu and WhateverGreen with Radeon cards, NO graphic settings have to be added to Clover (Inject ATI, etc.).
Note: these alterations, especially the brief white screen and less frequently purple lines and fan noise, are also seen in Windows and some real Macs with the same card.
Alteration during macOS installation
Boot from USB > Clover menu > Install macOS from Install macOS Catalina > screen works fine
Boot from USB > Clover menu > Install macOS from MacintoshHD > black screen
Booting from USB > Clover menu > Boot macOS from MacintoshHD > screen works fine.
In the first and third stages, screen works fine. In the second stage the screen goes black although the installation continues. The user has nothing to do at this moment so you can leave the PC working until the Clover menu is shown again, the screen is recovered, the initial account options can be configured and you can enter into the newly installed system with correct resolution and acceleration.
This behavior is not corrected even by placing Lilu and WhateverGreen into the USB device. At least in my case I have not found a solution for it. Yo can install macOS perfectly with that drawback of not seeing how it progresses during the second phase of the installation.
Only 2 connectors of the 5 available work
This card has 3 Display Port (DP) ports, 1 HDMI port and 1 DVI port. In my case, only 2 DP work, those that are further from the HDMI connector. It is enough if you use a single monitor or 2 monitors that can be connected by DP. But if you want to have 3 or more connected devices or some of them only have HDMI, it is necessary to enable the 5 connectors or at least 4 of them since the DVI is obsolete and does not allow resolutions as high as DP and HDMI.
User foxbox has proposed a solution in a thread titled [Solved] Sapphire RX 580 Nitro + SE | black screen on HDMI and DVI. Must inject from Clover a modification to the Orinoco framebuffer (which is used in the RX 580 card) so that the 5 connectors lack a fixedly assigned address and, instead, receive it dynamically. This change is made from the KextsToPatch section of Clover. Read the post from foxbox.
This has to be accompanied by 3 changes in the Graphics section of Clover: Orinoco in FB Name / Inject ATI / 5 in Video Ports. I have tested this solution in macOS Catalina and it effectively enables the 5 ports of the card but, since I only use 1 monitor, I have removed it and I am with Lilu and WhateverGreen.
The thread splitted from HWSensors3.
Tools to testing Radeon state.
How to load
sudo chown -R root:wheel ~/Downloads/RadeonPCI.kext sudo chmod -R 755 ~/Downloads/RadeonPCI.kext sudo kextutil -v ~/Downloads/RadeonPCI.kext and use RadeonDump utility
Commands to see temperature
./RadeonDump1 -n 6b0,c0300014
./RadeonDump1 -n 200,c0300014
./RadeonDump1 -r 714,7f4
Other possible methods to find a register for temperature
./RadeonDump1 -n 6b0,c0300e0c
./RadeonDump1 -n 6b0,1c5
./RadeonDump -n 6b0,d8200ca4
./RadeonDump -r 59800,59810
./RadeonDump -r 678,680
Latest solution RadeonMonitor.kext here
works for RX 460,480,580
not works for HD7790, R9 290X?
Here works also with HD7790, R9 290X
Support VEGA here
Version for test modern cards
Version for Catalina
As I see many novices in the forum ask "How to make my Radeon working? I have bad resolution, no QE/CI...." and so on. They come to the section and have no find an answer here because all Radeons are different and they don't know where else they read about this.
I want to explain all steps needed for launching the Radeon family of videocards.
I will speak about Clover because I maintain this bootloader to know recent hardware and modern OSX. Not sure if you will have the same result with other bootloaders. I am carefully checking the injecting of ATI card and correcting it times to times. I am also accessible for bug reports.
Older card require older system, newer cards require new system.
ATIRadeon9000 is possible to launch under Tiger.
ATIRadeonMobilityX1400 requires 10.5-10.6. See RadeonHD topic.
As I see RadeonHD3xxx was successful only in 10.5
For new AMDRadeonHD7xxx there must be 10.8.3+ system.
This must be the first question before asking about the card.
You may know the device-id from Windows->DeviceManger->VideoCard.properties->compatibleIDs
You may boot into system in safe mode (key -x) and see system profiler
And you may boot into Clover GUI, press F2 and get preboot.log. Find here something like
2:709 0:000 PCI (00|01:00.00) : 1002 6758 class=030000 2:709 0:000 Found Radeon model=AMD Radeon HD 6670 Series It means my DeviceID=6758 (these are hex numbers)
Then you must check that Apple's drivers support your DeviceID. If not then add it!
For example HD7850 has DeviceID=6819. If we look into ATI7000Controller (AMD7000... in new systems) we find 6818 here but no 6819!
I show you how to do this with terminal commands. Launch /Application/Utilities/Terminal.app. Type in opened window:
cp /System/Library/Extensions/ATI7000Controller.kext/Contents/Info.plist ~/Desktop So you get a copy of the Info.plist on Desktop. Edit it with TextEdit. Change 68181002 -> 68191002.
Don't edit this file directly in the system folder!
Then copy back by terminal. Don't use finder to copy kexts! They will have wrong permissions in this case.
sudo cp ~/Desktop/Info.plist /System/Library/Extensions/ATI7000Controller.kext/Contents/ sudo rm -r -v /System/Library/Caches/com.apple.kext.caches/* Second command make sure next reboot the kext will use your edited info.plist.
The same operation you must do with a kext AMDRadeonAccelerator or ATIRadeonX2000 or other one. Check all candidates if they contain such list of possible IDs and choose closest to you.
Since Clover revision 1971+ you may just inject new DeviceID into DSDT instead of correcting kexts. See instruction here.
GraphicsEnabler or Injector
OSX needs to know some properties (Model name, Family, etc...) that must be somehow injected at boot time. Yes, also real Macs got DeviceProperties string from firmware.
1. Set InjectATI=Yes in Clover (same as GE=y in Chameleon).
2. Use custom string made with gfxutil. For whom who knows.
3. Write _DSM into DSDT. You should know what to write.
4. Use some kext like ATY_init.kext or Natit.kext. If you are sure that the kext is for your card namely.
I want to say that all this methods make the same thing. Differencies in their tuning.
The Clover do this automatically for most known cards at this moment.
As you may see to start HD5000-7000 some strange names used: Pithecia, Orangutan, Elodea... What are they?
They are configs for framebuffer. Predefined configs how connectors are solded for cards used in real Macs. Strange but these configs rear coincide with PC card. Usually gurus make advice "choose a framebuffer that most appropriate for your card". The chances 1:10. In most cases you may find a FB name that gives you main monitor working. Or nothing at all.
Great respect to bcc9 who gives us a method to correct one of config to be exactly for you. See here.
My retelling for Clover is here
Success example in the thread in posts 44-52
I tested Clover's methods with two users having Mobility Radeon HD5470 and HD5650M. We found that full memory and QE/CI will be achieved if we set in Clover's config
even thou no file with bios is provided. This is the key to make Radeon Mobility working!
Other problem is bad gradients or artifacts. For this case Clover accept the key
and sometimes you also need to inject CustomEDID.
See Clover instructions for details.
And my results.
Gigabyte Radeon HD6670
<key>Graphics</key> <dict> <key>GraphicsInjector</key> <true/> <key>InjectEDID</key> <true/> <key>FBName</key> <string>Ipomoea</string> <key>LoadVBios</key> <false/> <key>VideoPorts</key> <integer>3</integer> <key>PatchVBios</key> <true/> </dict> <key>KernelAndKextPatches</key> <dict> <key>KernelCpu</key> <false/> <key>ATIConnectorsController</key> <string>6000</string> <key>ATIConnectorsData</key> <string>000400000403000000010000120401050008000004020000000100001102040310000000100000000001000000000002</string> <key>ATIConnectorsPatch</key> <string>040000000403000000010000100001061000000010000000000100000000000100080000040200000001000012040403</string> VTX Radeon HD5570
<key>Graphics</key> <dict> <key>PatchVBios</key> <false/> <key>FBName</key> <string>Baboon</string> <key>VideoPorts</key> <string>3</string> <key>GraphicsInjector</key> <string>Yes</string> <key>LoadVBios</key> <string>No</string> </dict> <key>KernelAndKextPatches</key> <dict> <key>Debug</key> <false/> <key>KernelCpu</key> <false/> <key>ATIConnectorsController</key> <string>5000</string> <key>ATIConnectorsData</key> <string>040000001400000000010000010201030008000000020000007100002205020110000000100000000001000000100002</string> <key>AppleRTC</key> <true/> <key>ATIConnectorsPatch</key> <string>040000001400000000010000010001040008000000020000007100002200020510000000100000000001000000000002</string> <key>AsusAICPUPM</key> <false/> <key>KextsToPatch</key> <array> <dict> <key>Name</key> <string>AppleAHCIPort</string> <key>Find</key> <data>RXh0ZXJuYWw=</data> <key>Replace</key> <data>SW50ZXJuYWw=</data> </dict> </array> </dict> See PatchVBios=No
for this card "yes" leads to black screen. Use with precautions.
A sample for Radeon R7 240
UPDATE for ElCapitan.
It seems has more problems. My HD6670 is not working in ElCapitan OOB unlike Mavericks.
I had to set FakeID=0x67401002 as correspond to real iMac12,2 and set this model in SMBIOS section.
It related to GraphicsPM or GraphicsControl.
Look these kexts to decide what you can do for your configuration.
HighSierra requires change these kexts by version from Sierra 10.12.6
for Radeon HD6xxx
AMDRadeonX3000.kext AMDRadeonX3000GLDriver.bundle IOAccelerator2D.plugin IOAcceleratorFamily2.kext . for Radeon HD7xxx and up AMDRadeonX4000.kext AMDRadeonX4000GLDriver.bundle IOAccelerator2D.plugin IOAcceleratorFamily2.kext . Black screen after wake problem resolved by follow method radeon_bios_decode.0.2.zip