Hello everyone!
Together with the help of
@DSM2.Hackintosh I built a Kext aiming at removing limitations put in place by Apple for PC graphics cards that reduce performance in some benchmarks like Geekbench and some scenarios where memory bandwidth is crucial.
Likely most of you already know the issue that some GPUs don't perform as expected in Geekbench. For example, a Radeon VII only scores around 50k to 60k points while on Windows it can easily reach the 82k range - with overclocking even more. This issue is not only affecting the Radeon VII but numerous other graphics cards as well.
This problem started back when macOS 10.14.5 Mojave was released, introducing the fix for fan control on Vega 56 / 64 cards. As it turns out, Apple never fixed the fan issues but instead put a dirty workaround in place. Modern AMD GPUs utilize a so-called SMU firmware to manage some of the cards functions. This SMU firmware needs to be uploaded by the graphics driver. It looks like the Vega 56 / 64 fan control bug was caused by a faulty SMU firmware implementation by Apple. Instead of fixing it, all they did was to disable loading of SMU firmware on PC graphics cards. This can be verified by force loading the SMU firmware again on Vega 56 / 64 cards. The fan control bug will then be back. Not loading SMU firmware causes a number of issues and one of them is memory bandwidth being cut in half. Since Geekbench is very sensitive to memory bandwidth, this is what causes the low scores.
So essentially, Apple scammed their customers here, putting a dirty fix in place that now affects a large amount of graphics cards. And of course this not only affects hackintosh users but also Mac Pro users or eGPU users, utilizing PC graphics cards on their Mac.
Now this is where my RadeonBoost Kext comes in. It makes sure that SMU firmware is loaded again, removing the memory bandwidth limitations, making sure the GPU can be used to its fullest potential. The results really speak for themselves.
RadeonBoost.kext has been built with Hackintosh users in mind, but of course it does work on a real Mac as well. That includes both Mac Pros as well as Macs with an eGPU. You can either inject the kext via OpenCore or put it into /Library/Extensions, repair permissions and rebuild kext cache. Putting it inside /L/E of course requires SIP (System Integrity Protection) to be disabled since the Kext is not signed.
Of course you can go ahead and edit the info.plist of RadeonBoost.kext to your likings. For example you can add your own properties. This comes handy if you want to additionally overclock or undervolt your GPU by using a PowerPlay Table, which of course can be added to the Kext as well.
List of supported GPUs:
- RX480, RX580, RX590 (!!! USE ALONG WHATEVERGREEN !!!)
- Radeon VII,
RX 5500, RX 5500 XT, RX 5600, RX 5700, RX 5700 XT (WHATEVERGREEN NOT NECESSARY)
Download & Changelog
- May 28 2020: V1.6 - Disabled SMU Firmware Loading for Navi10/14 due to broken SMU firmware starting from macOS 10.15.5, improved Polaris compatibility
- April 24 2020: V1.4 - Added target SMBIOSes for AGPM injector to prevent overriding of stock AGPM configuration on SMBIOSes that don't need an AGPM injector (e.g. iMac19,1 etc)
- April 20 2020: V1.3 Replaced "ATY,EFIVersion" with "ForceLoadFalconSmuFirmware" (thanks to Whatevergreen developers for discovery of this parameter), changed Polaris properties (RX480, 580, 590 users please re-test), removed Apple framebuffer properties (performance difference is minor)
- April 19 2020: V1.2 Removed support for Vega 56, Vega 64 and Vega Frontier (REASON)
- April 19 2020: V1.1 Removed unnecessary device properties, added integrated AGPM injector for SMBIOSes where it makes sense (iMacPro1,1; MacPro7,1; MacPro5,1; MacPro4,1)
- April 17 2020: V1.0 Initial Public Release
For download of RadeonBoost.kext please check this posts attachements.
Enjoy!