RadeonBoost: Something for you guys to try
Since no one in here appears to be interested in this kext I will stop maintaining this post with recent versions. If you are interested please use Google and you will find recent versions on MacRumors and Insanelymac.
recently some people in the Hackintosh scene made an interesting observation. Usually PC graphics cards score lower on Geekbench compared to their Apple counterparts. For example a Radeon VII in Geekbench 5 scores in the 50k range on macOS while it scores in the 80k range in Windows. A Radeon Pro Vega II in comparison scores much higher in macOS despite being essentially the same GPU. The same applies to a lot of other cards like RX 5700 (XT), Vega 56 / 64 or the RX580.
Now the interesting thing is: Apple uses different framebuffers for their own cards which include some additional device properties (graphics driver parameters). It has been observed that when using those framebuffers on the PC cards, their Geekbench scores will suddenly improve a lot and come closer or even equal or exceed those of Apple's cards. That however comes with the downside of non working display outputs due to different output mapping of those framebuffers.
However, I figured out that it actually is enough to just grab the driver parameters and inject them into the system while running on the generic RadeonFramebuffer for PC cards. This is enough to give you the boost in benchmark scores, enabling you to come closer to the Apple counterparts of those cards or even exceed their scores.
To make things easier, I built a kext automatically injecting those properties. It already has been tested working on Hackintoshes. With my kext solution and an additional PowerPlay Table for overclocking my Radeon VII it now scores up to 91k in Geekbench 5 on macOS compared to the 58k with only the overclocking and no additional driver parameters.
Now I am curious if this solution does work with eGPUs as well (I only own a Hackintosh and an old MBP without eGPU), so I thought why not upload my kext here for you guys to try.
Warning: In 10.15.5 Beta this kext causes a kernel panic with Navi GPUs. It's not possible for me to fix that and might be some kind of bug in the graphics driver. If the issue does not go away with the final release of 10.15.5 I will remove Navi support.
Simply disable SIP (the kext obviously is not signed), move the kext to /L/E and repair permissions + rebuild kext cache and reboot. If it works you should see an increase in your Geekbench OpenCL and Metal scores. Feel free to upload your results before and after.
Right now RadeonBoost is compatible with
- 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 Added AGPM configuration for SMBIOSes where it makes sense, removed unnecessary device properties, fixed eGPU support (probably)
- April 17 2020: v1.0 Transformed into codeless kext
- April 16 2020: v1.0 Added Vega Frontier and RX590 Support
@christopher_straser, This is excellent work and thank you for sharing! I will try it out with eGPU and report back.
@christopher_straser, Not nice man. This is from TonyMacX86, give credits.
So you know that kext from Brumbaer is incomplete, even if you copy and paste.
Who are you? I never heard of you. I also did not steal anything. If you refer to the injection of framebuffer personalities (which is nothing that can be stolen since it is common hackintosh knowledge), that is not what I am doing with that kext. I am just grabbing the additional parameters of those framebuffer personalities to use them with the generic RadeonFramebuffer. And exactly that is an idea that I came up with on my own. Proof is here: https://www.tonymacx86.com/threads/amd-radeon-navi-gpu.264399/page-83#post-2104341
In fact, I already have been using the underlying method before even stumbling upon the discussion on the linked Tonymacx86 topic. Reason is that someone on the German Hackintosh-Forum reported about the Geekbench score increase when using different framebuffer personalities which was when I started doing my own research and experiments regarding that. (Proof starts from here for those who understand German).
So you know that kext from Brumbaer is incomplete
What is incomplete? I really don't get what you are talking about...
@christopher_straser, I am the guy who found the "radeon boost" . You never hear of me ? 😎 : https://www.tonymacx86.com/threads/amd-radeon-navi-gpu.264399/page-80 . I see now you edited and posted the exact forum, do not worry, they can look back.
So you know I am doing this from 2008 😎
You never hear of me ?
Yes, I never heard of you.
So you know I am doing this from 2008
Good for you. Doesn't mean I have to know you though because I am not really active on Tonymacx86.
Instead of accusing me of stealing your work, it would be better to tell what exactly I did steal from you. You surely have some proof for your words if I did...
Yes I posted there and I explained why in this post.
Again: What did I steal from you? Provide evidence instead of whining like a baby. I am starting to get pissed man.
Are there substantive gains in applications other than Geekbench? Is there any indication that this is anything other than Apple crippling add-in card performance to make their own offerings look better? I was concerned this would be the case when Apple released the Mac Pro and the Radeon VII drivers showed no apparent performance improvements.
The performance gains appear to be very specific. If you analyze the Geekbench results you will see that just some tests go higher which then results in normalized scores. I recommend you do try it out and check if you observe any performance gains in your workloads.