Contribute
Register

AMD Radeon Performance Enhanced SSDT

Joined
Apr 19, 2018
Messages
76
Motherboard
Gigabyte Z390 Designare
CPU
i7-9700K
Graphics
RX 580
Mac
  1. MacBook Pro
I have an Sapphire Nitro+ RX580 running on an i9 on with a Z490 board as iMac20,2.

For me the SSDT didn't really work as expected, expecially the power consumption in Big Sur and newer. It was around 100 Watt in idle – even with the additional DAGPM.kext (same for Pavo's AGPM kext).

So I've read the complete thread to figure out a solution. Turns out that the DeviceProperty injection method explained on Page 35 and following works much better than the SSDT+kext in my case. Especially power consumption in idle dropped from 100 Watts to around 70.
For RX580 @0,name |string| ATY,Orinoco is probably all you need to inject for that wattage reporting. Although, It's been fixed on the latest macOS which we are not supposed to talk about until the public beta version is out. It now reports correct idle wattage consumption without injecting Orinoco FrameBuffer which by the way cannot be injected on the latest macOS as of yet. I think for RX 580 all other injections are prob unnecessary. If you really want to improve performance you can probably inject PP_PhmSoftPowerPlayTable to control the clock speed.
 
Joined
Jun 10, 2022
Messages
53
Motherboard
Gigabyte Z490 Vision G
CPU
i9-10850K
Graphics
RX 580
@Jasonhacks Thanks for the info. My Nitro+ RX580 has a switch for choosing between a Silent and an OC mode. I don't think I am going to play with the clock speeds. I thought PowerPlayTable is only applicable to Radeon VII Cards.
 
Joined
Apr 19, 2018
Messages
76
Motherboard
Gigabyte Z390 Designare
CPU
i7-9700K
Graphics
RX 580
Mac
  1. MacBook Pro
@Jasonhacks Thanks for the info. My Nitro+ RX580 has a switch for choosing between a Silent and an OC mode. I don't think I am going to play with the clock speeds. I thought PowerPlayTable is only applicable to Radeon VII Cards.
It works on Polaris cards as well. Just need to extract PowerPlayInfo values out of your vBIOS.rom and inject it. You can pretty much modify zero fan, fan curve, mclock, fclock in each state, and voltage. One thing I like about this is that I do not have to touch the switch for a Silent mode or an OC mode once I have their data. Just in case if you are interested, I’ve attached my PowerPlayInfo values as an example. You and I should have similar values as mine is also Nitro+ RX 580.
 

Attachments

  • PowerPlayInfo.zip
    328.1 KB · Views: 67
Joined
Jun 10, 2022
Messages
53
Motherboard
Gigabyte Z490 Vision G
CPU
i9-10850K
Graphics
RX 580
@Jasonhacks Ahh, okay, now I understand. Thanks a lot for the info and the zip. I will check out the files. My card is the 4 GB variant. I guess I can't just copy paste the PP_PhmSoftPowerPlayTable keyi 1:1 in this case, right?

BTW, there's a post on insanelymac by CMMChris who has created an Excel Spreadsheet to generate values for the PP_PhmSoftPowerPlayTable. It's called "Radeon VII PowerPlay Table Generator"
 
Joined
Apr 19, 2018
Messages
76
Motherboard
Gigabyte Z390 Designare
CPU
i7-9700K
Graphics
RX 580
Mac
  1. MacBook Pro
@Jasonhacks Ahh, okay, now I understand. Thanks a lot for the info and the zip. I will check out the files. My card is the 4 GB variant. I guess I can't just copy paste the PP_PhmSoftPowerPlayTable keyi 1:1 in this case, right?

BTW, there's a post on insanelymac by CMMChris who has created an Excel Spreadsheet to generate values for the PP_PhmSoftPowerPlayTable. It's called "Radeon VII PowerPlay Table Generator"
No I wouldn’t unless you know those values are stable for your GPU.


Here is how you can get those values.

1. Open your vBIOS with Polaris editor in Windows.
2. Modify the data to your liking and save
3. Open the modified vBIOS with ATOMBIOSREADER (It will then output .txt file containing offset and lenth of PowerPlayInfo along with other information in vBIOS.
4. Open the modified vBIOS with HxD hex editor and copy the PowerPlayInfo values starting from offset to end of its length and save it somewhere.
5. Finally inject PP_PhmSoftPowerPlayTable with those values.


One thing I didn’t like about default RX 580 fan curve behavior on 4K display on macOS is that fans will kick in after reaching 51c and back down after it cools down to 46c degree and this behavior continues in ever 6~7 minutes when I am watching a video clips, run some apps or web browsing. So I modified fan curve behavior to run at low rpm at all times like in between 500~550rpm the temperature stays around 35c to 40c during the summer time.
 
Joined
Jun 10, 2022
Messages
53
Motherboard
Gigabyte Z490 Vision G
CPU
i9-10850K
Graphics
RX 580
@Jasonhacks

Could you please confirm if I've extracted the data from the ROM correctly?
  • Location of PowerPlayInfo 9bba Len 0341 Rev 07:01
  • Then I used Hxd, opened the ROM, entered the offset and copied values in the length of 341:
    HxD04 - Kopie.png
Is this correct? Thanks.
 
Joined
May 9, 2021
Messages
18
Motherboard
Gigabyte Z690 Aorus Elite AX
CPU
i9-12900K
Graphics
RX 6900 XT
What is the difference between using this method by "SSDT + Dummy Kext from AGPM + Rename (when necessary)", rather than using the AGPInjector app?

I ask because both here activate AGPM within the X86PlataformPlugin, but from what I noticed, SSDTS need to update ACPI paths, update slot, everything according to my setup and not just copy/paste the .aml

I've always used AGPMInjector and with the generated kext, it activates AGPM in cases where AGPM is not active and actually improves performance, which makes it simpler to use it than the set of SSDTs, Dummy Kext, Rename, etc.

Ah, this method of SSDTs, dummy kext... are they valid for Big Sur and Monterey? Or just Catalina and earlier?
 
Last edited:
Joined
Jun 10, 2022
Messages
53
Motherboard
Gigabyte Z490 Vision G
CPU
i9-10850K
Graphics
RX 580
What is the difference between using this method by "SSDT + Dummy Kext from AGPM + Rename (when necessary)", rather than using the AGPInjector app?

I ask because both here activate AGPM within the X86PlataformPlugin, but from what I noticed, SSDTS need to update ACPI paths, update slot, everything according to my setup and not just copy/paste the .aml

I've always used AGPMInjector and with the generated kext, it activates AGPM in cases where AGPM is not active and actually improves performance, which makes it simpler to use it than the set of SSDTs, Dummy Kext, Rename, etc.

Ah, this method of SSDTs, dummy kext... are they valid for Big Sur and Monterey? Or just Catalina and earlier?

The major difference is that you inject data (which you generate yourself) via Device Properties instead of ACPI. In my case this works while the ACPI method doesn't.

I've wrote a lengthy guide about all the possibilities for tweaking Radeon Cards on my Repo. Maybe this clears some things up: https://github.com/5T33Z0/OC-Little-Translated/tree/main/11_Graphics/GPU/AMD_Radeon_Tweaks
 
Joined
Aug 9, 2011
Messages
27
Motherboard
CLEVO P750DM Z170
CPU
6700K 4Ghz
Graphics
980m (No Optimus)
Mac
Classic Mac
Mobile Phone
The major difference is that you inject data (which you generate yourself) via Device Properties instead of ACPI. In my case this works while the ACPI method doesn't.

I've wrote a lengthy guide about all the possibilities for tweaking Radeon Cards on my Repo. Maybe this clears some things up: https://github.com/5T33Z0/OC-Little-Translated/tree/main/11_Graphics/GPU/AMD_Radeon_Tweaks
Hello 5T33Z0,
On your guide's 1st method you wrote:
"Select the SSDT corresponding to your GPU model located in the "mattystonnie" folder, export it as .aml"
Can you explain how to export the dsl in mattystonnie to aml?
Thanx
 
Joined
Jun 10, 2022
Messages
53
Motherboard
Gigabyte Z490 Vision G
CPU
i9-10850K
Graphics
RX 580
Hello 5T33Z0,
On your guide's 1st method you wrote:
"Select the SSDT corresponding to your GPU model located in the "mattystonnie" folder, export it as .aml"
Can you explain how to export the dsl in mattystonnie to aml?
Thanx
You joined in 2011 and don't know how to export an .aml file?
  • Click on the .dsl you are interested in
  • Click on "Raw"
  • Copy the text
  • Copy and paste it into maciASL
  • Save as…
  • File Format: "ACPI Machine Language Binary"
 
Top