Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
After reading #108 again, I see that my question was a little bit :(.
Thank You for the answers.
No worries, I didn't make that too clear. I only mentioned the PowerPlay table will be under the GPU PCIe path name if injected via OpenCore. That may be confusing.

Anyway, for Radeon VII, it's not too hard to know if the kext is really working. As per the info in post #1. You should able to observe the difference in power draw when you run Luxmark. (Luxmark produce very stable power draw, that's why I use this benchmarking software, but not the others)
 

lomahs

macrumors newbie
Jul 5, 2016
28
23
No worries, I didn't make that too clear. I only mentioned the PowerPlay table will be under the GPU PCIe path name if injected via OpenCore. That may be confusing.

Anyway, for Radeon VII, it's not too hard to know if the kext is really working. As per the info in post #1. You should able to observe the difference in power draw when you run Luxmark. (Luxmark produce very stable power draw, that's why I use this benchmarking software, but not the others)

Something happened: MacPro nearly idle: 150W (measured at the wall outlet), Radeon VII rendering in Cinema4D with ProRender (GPU-processor under max. load): max 350W (measured at the wall outlet). No stability-problems.
(My "retired" Vega 64 consumed max 330W alone...without downvolting, but never tried with Vega 64)
 
  • Like
Reactions: h9826790

antonlinus

macrumors regular
Oct 10, 2019
100
16
For those who want to inject the PowerPlay table via OpenCore, you may remove the PowerPlay kext, and do the following. For those who want the kext, please go to the bottom of this post.

1) Use Hackintool to find out the PciRoot
View attachment 909006

2) Mount your EFI partition, then open the config.plist with text editor, search DeviceProperties, and place the following code under the Add section
Code:
        <dict>
            <key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>PP_PhmSoftPowerPlayTable</key>
                <data>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</data>
            </dict>
        </dict>

The end result should looks like this
View attachment 909008

3) Check the PciRoot is same as your GPU's Device Path found in step 1, if not, correct it.

4) If you have your own PowerPlay table, replace the base64 code accordingly.

5) Save and reboot

With this method, the PowerPlay table will NOT under AMD10000Controller anymore, but be injected to the GPU's device path directly. So, in IOReg, you will find the PowerPlay table under the GFX0 (assume you use my OpenCore package, which patch the GPU name to GFX0 for HEVC HWAccel)
View attachment 909010

This will NOT further improve anything. If your setup is working flawless now, there is no need for you to change anything. Especially in Mojave, there is no more GPU driver update. The kext now should be good forever (in Mojave).

However, if you are with Catalina, this method can avoid some possible compatibility issue for future macOS update.
[automerge]1587765002[/automerge]
And this is the new version of the PowerPlay kext. Same effect as the OpenCore method, but just via a kext that base on RadeonBoost injection method.

This kext fit both Catalina and Mojave. For those who are running Catalina WITHOUT OpenCore, better to use this new version to avoid future compatibility issue. Installation method same as the old one.
I am running Catalina with OC on a cMP 5,1 and a Radeon VII without pixlas mod. If i inject the powerplay table with OC would that mean that it will work under Windows aswell and would it then still work even after a PRAM reset and SIP turned on again? thanks for your help
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
I am running Catalina with OC on a cMP 5,1 and a Radeon VII without pixlas mod. If i inject the powerplay table with OC would that mean that it will work under Windows aswell and would it then still work even after a PRAM reset and SIP turned on again? thanks for your help
In Windows, use Radeon Software to set the voltage and clock speed. As fail safe, you better set the PowerTune by yourself as well.

The reason we use kext in macOS (or OpenCore injection) is because there is no such software in macOS.

As long as you boot via OpenCore, the PowerPlay table will work in macOS, regardless SIP status.
 

Grumply

macrumors 6502
Feb 24, 2017
285
194
Melbourne, Australia
Has anyone made a custom powerplay kext to downvolt a 5700xt to run off just the internal mini 6-pin connectors (like the Radeon VII can)?

I have a friend who wants to upgrade his 5,1 from an RX580 to 5700XT and is wondering if it's possible to do so without performing the Pixlas Mod (he's not very handy with electronics in general)?
 

zachek

macrumors member
Jun 11, 2020
42
7
Los Angeles
No worries, I didn't make that too clear. I only mentioned the PowerPlay table will be under the GPU PCIe path name if injected via OpenCore. That may be confusing.

Anyway, for Radeon VII, it's not too hard to know if the kext is really working. As per the info in post #1. You should able to observe the difference in power draw when you run Luxmark. (Luxmark produce very stable power draw, that's why I use this benchmarking software, but not the others)

Dumb question, but does Luxmark measure the power draw itself? Or are you using another program to do measure the draws? I somehow missed that bit of info.

For example, what program's are these [1] [2] ?
 

antonlinus

macrumors regular
Oct 10, 2019
100
16
im running OC 0.6.3 macOS Catalina with SIP disabled and have the .kext in /library/extensions.
today i was doing a bit of converting (raw video files) and kept experiencing sudden shut downs. The MacPro would just shut down and when i looked at the computer after such a shutdown i would see the red light from the Radeon VII blink a couple of times after completely turning off. not sure if this is related to the card pulling to much power or something? any guesses?
 

Norbert Mikołajczyk

macrumors 6502
May 26, 2016
346
171
im running OC 0.6.3 macOS Catalina with SIP disabled and have the .kext in /library/extensions.
today i was doing a bit of converting (raw video files) and kept experiencing sudden shut downs. The MacPro would just shut down and when i looked at the computer after such a shutdown i would see the red light from the Radeon VII blink a couple of times after completely turning off. not sure if this is related to the card pulling to much power or something? any guesses?
How Rvii is powered? Do you have pixlas mod?
 

Norbert Mikołajczyk

macrumors 6502
May 26, 2016
346
171
no just the custom powerplay kext
VII is powered using 2 mini6pin to 8pin adapter cables
I was experiencing same issues while playing in boot camp and benchmarking in MacOS.sudden power downs. i had external psu now I’m gonna try to do the pixlas mod. If the same issue will happen then it’s time to sell it and buy something modern.
 

antonlinus

macrumors regular
Oct 10, 2019
100
16
I was experiencing same issues while playing in boot camp and benchmarking in MacOS.sudden power downs. i had external psu now I’m gonna try to do the pixlas mod. If the same issue will happen then it’s time to sell it and buy something modern.
ugh i was afraid of this answer. i guess i'll order the pixlas mod cables too then... fingers crossed.....
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
no just the custom powerplay kext
VII is powered using 2 mini6pin to 8pin adapter cables
Did you balance the power draw?
 

antonlinus

macrumors regular
Oct 10, 2019
100
16
Did you balance the power draw?
mh i have a weird cable setup since i was not able to get the same cables as in this post. I'm using 2x mini 6Pin to 6Pin cables then i have 2x dual 6Pin to 8pin cables of which i use only one 6pin per side resulting in to seperate mini6pin to 8pin cables sort of... i guess thats really messy...
 

Attachments

  • 1.jpg
    1.jpg
    421.3 KB · Views: 134
  • 2.jpg
    2.jpg
    396.4 KB · Views: 114

antonlinus

macrumors regular
Oct 10, 2019
100
16
mh i have a weird cable setup since i was not able to get the same cables as in this post. I'm using 2x mini 6Pin to 6Pin cables then i have 2x dual 6Pin to 8pin cables of which i use only one 6pin per side resulting in to seperate mini6pin to 8pin cables sort of... i guess thats really messy...
I also have a dual mini 6pin to single 8pin cable and a single 8pin to dual 8 pin cable but using that the card wont even power up
 

Attachments

  • CB544FC4-93E1-41F6-9112-75DBAA89625A.jpeg
    CB544FC4-93E1-41F6-9112-75DBAA89625A.jpeg
    103.8 KB · Views: 109

tsialex

Contributor
Jun 13, 2016
13,454
13,601
mh i have a weird cable setup since i was not able to get the same cables as in this post. I'm using 2x mini 6Pin to 6Pin cables then i have 2x dual 6Pin to 8pin cables of which i use only one 6pin per side resulting in to seperate mini6pin to 8pin cables sort of... i guess thats really messy...
This is just insane, you are powering a GPU that Tom's Hardware found the peak power at 330.35W with a setup that can safely provide at best around 225 to 230W (when balancing the power draw, which you are not currently).

Bh5nd4W98qvmppd3CWQjKc-970-80.png
 

antonlinus

macrumors regular
Oct 10, 2019
100
16
This is just insane, you are powering a GPU that Tom's Hardware found the peak power at 330.35W with a setup that can safely provide at best around 225 to 230W (when balancing the power draw, which you are not currently).

Bh5nd4W98qvmppd3CWQjKc-970-80.png
Yeah i have no idea what i did there i just tried a bunch of weird combinations after i got frustrated when the cables i ordered wouldn't work. Any idea why the dual mini6 to dual 8Pin combo in my other post doesn’t work? It should work the same as the solution martin used to balance powerdraw no? I cant get my hand on the exact combo he used since i can’t find the cables he described anywhere...
 

tsialex

Contributor
Jun 13, 2016
13,454
13,601
Yeah i have no idea what i did there i just tried a bunch of weird combinations after i got frustrated when the cables i ordered wouldn't work. Any idea why the dual mini6 to dual 8Pin combo in my other post doesn’t work? It should work the same as the solution martin used to balance powerdraw no?
VII is a GPU that needs TWO 8-Pin power connections, 150W + 150W. Mac Pro backplane mini PCIe AUX Boost connectors can sustained provide 90~95W each.

No one should ever use a VII without a Pixla's mod unless you really don't care about shutdowns and your backplane power traces being burned to crisp.
 

antonlinus

macrumors regular
Oct 10, 2019
100
16
VII is a GPU that needs TWO 8-Pin power connections, 150W + 150W. Mac Pro backplane mini PCIe AUX Boost connectors can sustained provide 90~95W each.

No one should ever use a VII without a Pixla's mod unless you really don't care about shutdowns and your backplane power traces being burned to crisp.
Well i finally gave in and ordered everything for the mod so lets hope i didn’t already damage anything....
After the mod there is no need for the kext anymore or should i keep it for safety?
 

zachek

macrumors member
Jun 11, 2020
42
7
Los Angeles
OK, the goal achieved. Now, we can downvolt the Radeon VII with a kext (which only contain an info.plist to inject the required parameters), no need to modify the system kext anymore. OS update won't revert the modded kext. PRAM reset won't break the GPU driver. In fact, we can simply reset PRAM to disable the PP table (good for trouble shooting).

Here is the "how to"

a) Still highly recommend you go through the step 0-6 in post #1, so that you can find out the voltage (or clock speed) that optimum for your own Radeon VII.

But if you are too lazy to do that, you can simply download the attached kext, disable SIP, and then jump to step f, this kext will downvolt your Radeon VII to 981mV with HBM set to 1100MHz. Should be good for most Radeon VII. If anything goes wrong, a PRAM reset will bring your system back to normal, then you can remove the kext (or mod it to fit your card)

b) once you get the Base64 code, download (and unzip) the CustomPowerPlay.kext (attached in this post).

c) Right click on it, select "Show Package Contents"

d) Inside the "Contents" folder, there is an info.plist file, open it by text editor.

e) Search "<key>PP_PhmSoftPowerPlayTable</key>", then there is a very long Base64 code under it. Replace that Base64 code by your own code (from step 0), and save it.

f) Copy the CustomPowerPlay.kext to /Library/Extensions/ (NOT /System/Library/Extensions/)

g) Open Terminal, enter
Code:
sudo chmod -R 755 /Library/Extensions/CustomPowerPlay.kext

h) Enter
Code:
sudo chown -R root:wheel /Library/Extensions/CustomPowerPlay.kext

i) Enter
Code:
sudo codesign --deep -fs - /Library/Extensions/CustomPowerPlay.kext

j) Enter
Code:
sudo touch /Library/Extensions; kextcache -update-volume /
(May shows something like "No such file..." or "Error 107", don't worry, you can safely ignore them)

k) Restart

After reboot, the PowerPlay table should be working as expected. Since there is no way to observe the RadeonVII's parameters directly in macOS. My own suggestion is to run Luxmark 3.1 before applying the kext, record down the power draw and score, then run it again after kext installed. You should see about 5% improvement, but lower power draw.

Also, you may run IOJones

https://sourceforge.net/projects/iojones/

Then search AMD10000, you should see "9 values" next to "aty_properties", and able to see that large PP table.
View attachment 855225
After I complete step i, Terminal spits out this message:

Code:
/Library/Extensions/CustomPowerPlay.kext: resource fork, Finder information, or similar detritus not allowed

After step j I get a lot of errors ( I understand you said these could be safely ignored, just including in case they are somehow applicable...)

Code:
Warning: non-root can't lock the volume for /

Warning: /AppleInternal/Library/Extensions: No such file or directory

But I do see:

Code:
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fdbe1c12fe0 [0x7fff8cf1e8f0]> { URL = "file:///Library/Extensions/CustomPowerPlay.kext/", ID = "de.chinamobilemag.RadeonBoost" }

I did this a few months ago and couldn't confirm afterwards that it had worked using IOJones (only 7 values after aty_properties and no large PP table), but using Hardware monitor while running Luxmark and Unigen Heaven seemed to produce the expected results so I didn't go back to see what I did wrong.

btw SIP is disabled. also I saw you post a screenshot of your extensions in System Information and the CustomPowerPlay kext was there. Mine is not...

Also having trouble figuring out how to change the default boot drive within the OC bootpicker so that it will choose my desired drive if I do nothing and it times out. I feel silly I can't figure this out, I've been searching all the OC threads and still can't get it sorted. Selecting my desired boot within System Preferences / Startup Disk did not fix the problem... Is it related to the HideAuxiliary bit of code?
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
After I complete step i, Terminal spits out this message:

Code:
/Library/Extensions/CustomPowerPlay.kext: resource fork, Finder information, or similar detritus not allowed

After step j I get a lot of errors ( I understand you said these could be safely ignored, just including in case they are somehow applicable...)

Code:
Warning: non-root can't lock the volume for /

Warning: /AppleInternal/Library/Extensions: No such file or directory

But I do see:

Code:
Kext with invalid signatured (-67062) allowed: <OSKext 0x7fdbe1c12fe0 [0x7fff8cf1e8f0]> { URL = "file:///Library/Extensions/CustomPowerPlay.kext/", ID = "de.chinamobilemag.RadeonBoost" }

I did this a few months ago and couldn't confirm afterwards that it had worked using IOJones (only 7 values after aty_properties and no large PP table), but using Hardware monitor while running Luxmark and Unigen Heaven seemed to produce the expected results so I didn't go back to see what I did wrong.

btw SIP is disabled. also I saw you post a screenshot of your extensions in System Information and the CustomPowerPlay kext was there. Mine is not...

Also having trouble figuring out how to change the default boot drive within the OC bootpicker so that it will choose my desired drive if I do nothing and it times out. I feel silly I can't figure this out, I've been searching all the OC threads and still can't get it sorted. Selecting my desired boot within System Preferences / Startup Disk did not fix the problem... Is it related to the HideAuxiliary bit of code?
If you can't do that in system preferences, try Control + Enter your preferred drive in Boot Picker.

If still can't, perform a NVRAM reset, then try again.
 

zachek

macrumors member
Jun 11, 2020
42
7
Los Angeles
If you can't do that in system preferences, try Control + Enter your preferred drive in Boot Picker.

If still can't, perform a NVRAM reset, then try again.
Thanks! that resolved the default boot drive problem I was having.

Can you comment on the CustomPowerPlay.kext problem?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.