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

h9826790

macrumors P6
Apr 3, 2014
16,628
8,557
Hong Kong
OK, even there should be little to no real world performance benefit, but I've just tested some parameters which suggested by hush-vv in the Hackintosh community. And the result is positive. My Radeon VII now able to produce the expected score in GB5 in Montrey 12.6.1. (Single monitor setup, no need to go through the sleep /wake cycle, no need to use any HDMI dongle, and we can keep SMBIOS spoofing)

The idea is simple. Rather than force load the SMU firmware (which doesn't work in Big Sur and beyond), we simply spoof the Radeon VII to the Radeon Pro Vega II. So that macOS will upload the SMU firmware for us automatically. Just did a bit more test. The model name itself isn't important. We can keep macOS to display "AMD Radeon VII" by using the <key>model</key>. But macOS will still see the compute engine as "AMD Radeon Pro Vega II" by using the following code. This is good enough to bypass the artificial lock in compute task.

The code looks like this. (Please check your PCI path and correct it accordingly, do NOT just blindly use the code below)
Code:
<key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>model</key>
                <string>AMD Radeon VII</string>
                <key>@0,name</key>
                <string>ATY,Donguil</string>
                <key>@1,name</key>
                <string>ATY,Donguil</string>
                <key>@2,name</key>
                <string>ATY,Donguil</string>
                <key>@3,name</key>
                <string>ATY,Donguil</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2020</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,DeviceName</key>
                <string>Vega II</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.186</string>
                <key>ATY,Rom#</key>
                <string>113-D160BW-444</string>
                <key>ATY,EFIVersionB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,EFIVersionROMB</key>
                <string>113-D163A1XT-045</string>
            </dict>
        </dict>
    </dict>

For those who want to downvolt / overclock the GPU, you can also add the PowerPlay Table. I've tested that, no conflict. And if all parameters inserted correctly, the system info should looks like this.
Radeon Pro Vega II.png


CL!ng will also show a much higher Device To Device memory bandwidth.
Radeon VII Metal - patched.png


What I suspect is that extra memory bandwidth affect the GB5 scores
Screenshot 2022-11-28 at 8.56.32.png


Here is the detail result. Aparently, some tests affected by that extra memory bandwidth a lot, which makes the overall score is much higher.
Screenshot 2022-11-28 at 9.53.35 copy.png


Anyway, before anyone complain, most likely this trick won't bring any extra performance to your real world task. Please don't expect too much.

On the other hand, there is no need to worry about overheat as well. Even there is no fan on the Radeon Pro Vega II. But since the fan profile is stored inside the graphic card's firmware. The fan will still spin up accordingly.
 
Last edited:

roobarb!

macrumors 6502
Jul 30, 2009
272
183
(Please check your PCI path and correct it accordingly, do NOT just blindly use the code below)

I promise that I checked!

However, no beans here. I don’t know why, but when boot is complete and it’s switching over to show what would be the login screen, my monitor goes to sleep and that’s my lot. Just tried an NVRAM reset, blessed OC again and gave it another shot without the PowerPlay table… still no good.

I’ll have to tinker a little more, but it’s a time-consuming task when I need a firmware zap each go!

I’m using the DisplayPort output if that makes any difference.

EDIT: Oh, here we go.

1669930990963.png


So it looks like it's only being partially applied. Not sure why this would be the case. All up and running with the latest 0.8.6 and the sleep thing happens, but I can remote into the system fine, which is how I got this screenshot.

EDIT2: So, now I get the correct details, but still no display. It's just not detected. I removed the following from the DeviceProperties section:

<key>rebuild-device-tree</key> <integer>0</integer> <key>unfairgva</key> <integer>1</integer>

And I also removed:

-wegtree mbasd=1

From the boot-args section. I now get all the correct details, but still no output to the display. :/

1669932501200.png


@h9826790 - would you mind posting your whole config.plist and how your monitor is connected? I'm a bit lost.

EDIT3: Ha, well, HDMI output works... but is also broken.

1669934299009.jpeg


Those colours aren't right!
 
Last edited:

eVasilis

macrumors 6502
Jan 13, 2010
425
182
OK, even there should be little to no real world performance benefit, but I've just tested some parameters which suggested by hush-vv in the Hackintosh community. And the result is positive. My Radeon VII now able to produce the expected score in GB5 in Montrey 12.6.1. (Single monitor setup, no need to go through the sleep /wake cycle, no need to use any HDMI dongle, and we can keep SMBIOS spoofing)

The idea is simple. Rather than force load the SMU firmware (which doesn't work in Big Sur and beyond), we simply spoof the Radeon VII to the Radeon Pro Vega II. So that macOS will upload the SMU firmware for us automatically.

The code looks like this. (Please check your PCI path and correct it accordingly, do NOT just blindly use the code below)
Code:
<key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>model</key>
                <string>AMD Radeon Pro Vega II</string>
                <key>@0,name</key>
                <string>ATY,Donguil</string>
                <key>@1,name</key>
                <string>ATY,Donguil</string>
                <key>@2,name</key>
                <string>ATY,Donguil</string>
                <key>@3,name</key>
                <string>ATY,Donguil</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2020</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,DeviceName</key>
                <string>Vega II</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.186</string>
                <key>ATY,Rom#</key>
                <string>113-D160BW-444</string>
                <key>ATY,EFIVersionB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,EFIVersionROMB</key>
                <string>113-D163A1XT-045</string>
            </dict>
        </dict>
    </dict>

For those who want to downvolt / overclock the GPU, you can also add the PowerPlay Table. I've tested that, no conflict. And if all parameters inserted correctly, the system info should looks like this.
View attachment 2119918

CL!ng will also show a much higher Device To Device memory bandwidth.
View attachment 2119921

What I suspect is that extra memory bandwidth affect the GB5 scores
View attachment 2119733

Here is the detail result. Aparently, some tests affected by that extra memory bandwidth a lot, which makes the overall score is much higher.
View attachment 2119927

Anyway, before anyone complain, most likely this trick won't bring any extra performance to your real world task. Please don't expect too much.

On the other hand, there is no need to worry about overheat as well. Even there is no fan on the Radeon Pro Vega II. But since the fan profile is stored inside the graphic card's firmware. The fan will still spin up accordingly.
It works with the rx 5700 but the difference is small:

Screen Shot 2022-12-02 at 2.10.50 AM.png


Screen Shot 2022-12-02 at 2.16.40 AM.png


That is the section in my config:

Code:
<key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Donguil</string>
                <key>@1,name</key>
                <string>ATY,Donguil</string>
                <key>@2,name</key>
                <string>ATY,Donguil</string>
                <key>@3,name</key>
                <string>ATY,Donguil</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2020</string>
                <key>ATY,DeviceName</key>
                <string>Vega II</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.186</string>
                <key>ATY,EFIVersionB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,EFIVersionROMB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,Rom#</key>
                <string>113-D160BW-444</string>
                <key>agdpmod</key>
                <string>pikera</string>
                <key>model</key>
                <string>AMD Radeon Pro Vega II</string>
                <key>rebuild-device-tree</key>
                <integer>0</integer>
                <key>shikigva</key>
                <integer>80</integer>
                <key>unfairgva</key>
                <integer>1</integer>
            </dict>
        </dict>
 

h9826790

macrumors P6
Apr 3, 2014
16,628
8,557
Hong Kong
I promise that I checked!

However, no beans here. I don’t know why, but when boot is complete and it’s switching over to show what would be the login screen, my monitor goes to sleep and that’s my lot. Just tried an NVRAM reset, blessed OC again and gave it another shot without the PowerPlay table… still no good.

I’ll have to tinker a little more, but it’s a time-consuming task when I need a firmware zap each go!

I’m using the DisplayPort output if that makes any difference.

EDIT: Oh, here we go.

View attachment 2121886

So it looks like it's only being partially applied. Not sure why this would be the case. All up and running with the latest 0.8.6 and the sleep thing happens, but I can remote into the system fine, which is how I got this screenshot.

EDIT2: So, now I get the correct details, but still no display. It's just not detected. I removed the following from the DeviceProperties section:

<key>rebuild-device-tree</key> <integer>0</integer> <key>unfairgva</key> <integer>1</integer>

And I also removed:

-wegtree mbasd=1

From the boot-args section. I now get all the correct details, but still no output to the display. :/

View attachment 2121893

@h9826790 - would you mind posting your whole config.plist and how your monitor is connected? I'm a bit lost.

EDIT3: Ha, well, HDMI output works... but is also broken.

View attachment 2121903

Those colours aren't right!
Sure, my config is attached. Please be careful, the Power Play table is also there, which may not fit your card.

Anyway, I am also using Display Port.
 

Attachments

  • config.plist.zip
    7.5 KB · Views: 94
  • Like
Reactions: roobarb!

h9826790

macrumors P6
Apr 3, 2014
16,628
8,557
Hong Kong
It works with the rx 5700 but the difference is small:

View attachment 2121935

View attachment 2121936

That is the section in my config:

Code:
<key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>@0,name</key>
                <string>ATY,Donguil</string>
                <key>@1,name</key>
                <string>ATY,Donguil</string>
                <key>@2,name</key>
                <string>ATY,Donguil</string>
                <key>@3,name</key>
                <string>ATY,Donguil</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2020</string>
                <key>ATY,DeviceName</key>
                <string>Vega II</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.186</string>
                <key>ATY,EFIVersionB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,EFIVersionROMB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,Rom#</key>
                <string>113-D160BW-444</string>
                <key>agdpmod</key>
                <string>pikera</string>
                <key>model</key>
                <string>AMD Radeon Pro Vega II</string>
                <key>rebuild-device-tree</key>
                <integer>0</integer>
                <key>shikigva</key>
                <integer>80</integer>
                <key>unfairgva</key>
                <integer>1</integer>
            </dict>
        </dict>
For 5700, I think it make more sense to spoof to W5700X (even the effect should be similar)
Code:
<key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>        
            <dict>
                <key>@0,name</key>
                <string>ATY,Adder</string>
                <key>@1,name</key>
                <string>ATY,Adder</string>
                <key>@2,name</key>
                <string>ATY,Adder</string>
                <key>@3,name</key>
                <string>ATY,Adder</string>
                <key>AAPL00,DualLink</key>
                <data>AQAAAA==</data>
                <key>ATY,Card#</key>
                <string>102-D32200-00</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2019</string>
                <key>ATY,DeviceName</key>
                <string>W5700X</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.190</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,Rom#</key>
                <string>113-D3220E-190</string>
                <key>device_type</key>
                <string>ATY,AdderParent</string>
                <key>hda-gfx</key>
                <string>onboard-1</string>
                <key>model</key>
                <string>Radeon Pro W5700X</string>
                <key>name</key>
                <string>ATY_GPU</string>
            </dict>
 

eVasilis

macrumors 6502
Jan 13, 2010
425
182
For 5700, I think it make more sense to spoof to W5700X (even the effect should be similar)
...
Well, the difference is negligible anyway. All this is like trying to squeeze water out of a rock. The cMPs are a dying breed, as far as MacOS is concerned. They do make nice windows machines! Windows 11 pro runs like a charm (so far). So, there is s bit of working life left for them albeit within the dark side of the force.
 
Last edited:

Macschrauber

macrumors 68030
Dec 27, 2015
2,872
1,418
Germany
I promise that I checked!

However, no beans here. I don’t know why, but when boot is complete and it’s switching over to show what would be the login screen, my monitor goes to sleep and that’s my lot. Just tried an NVRAM reset, blessed OC again and gave it another shot without the PowerPlay table… still no good.

I’ll have to tinker a little more, but it’s a time-consuming task when I need a firmware zap each go!

I’m using the DisplayPort output if that makes any difference.

EDIT: Oh, here we go.

View attachment 2121886

So it looks like it's only being partially applied. Not sure why this would be the case. All up and running with the latest 0.8.6 and the sleep thing happens, but I can remote into the system fine, which is how I got this screenshot.

EDIT2: So, now I get the correct details, but still no display. It's just not detected. I removed the following from the DeviceProperties section:

<key>rebuild-device-tree</key> <integer>0</integer> <key>unfairgva</key> <integer>1</integer>

And I also removed:

-wegtree mbasd=1

From the boot-args section. I now get all the correct details, but still no output to the display. :/

View attachment 2121893

@h9826790 - would you mind posting your whole config.plist and how your monitor is connected? I'm a bit lost.

EDIT3: Ha, well, HDMI output works... but is also broken.

View attachment 2121903

Those colours aren't right!

This helped for me

 
  • Like
Reactions: blauesliebe7

monoton

macrumors member
Aug 15, 2006
60
49
Oslo / Tokyo
OK, even there should be little to no real world performance benefit, but I've just tested some parameters which suggested by hush-vv in the Hackintosh community. And the result is positive. My Radeon VII now able to produce the expected score in GB5 in Montrey 12.6.1. (Single monitor setup, no need to go through the sleep /wake cycle, no need to use any HDMI dongle, and we can keep SMBIOS spoofing)

The idea is simple. Rather than force load the SMU firmware (which doesn't work in Big Sur and beyond), we simply spoof the Radeon VII to the Radeon Pro Vega II. So that macOS will upload the SMU firmware for us automatically. Just did a bit more test. The model name itself isn't important. We can keep macOS to display "AMD Radeon VII" by using the <key>model</key>. But macOS will still see the compute engine as "AMD Radeon Pro Vega II" by using the following code. This is good enough to bypass the artificial lock in compute task.

The code looks like this. (Please check your PCI path and correct it accordingly, do NOT just blindly use the code below)
Code:
<key>DeviceProperties</key>
    <dict>
        <key>Add</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>
            <dict>
                <key>model</key>
                <string>AMD Radeon VII</string>
                <key>@0,name</key>
                <string>ATY,Donguil</string>
                <key>@1,name</key>
                <string>ATY,Donguil</string>
                <key>@2,name</key>
                <string>ATY,Donguil</string>
                <key>@3,name</key>
                <string>ATY,Donguil</string>
                <key>ATY,Copyright</key>
                <string>Copyright AMD Inc. All Rights Reserved. 2005-2020</string>
                <key>ATY,FamilyName</key>
                <string>Radeon Pro</string>
                <key>ATY,DeviceName</key>
                <string>Vega II</string>
                <key>ATY,EFIVersion</key>
                <string>01.01.186</string>
                <key>ATY,Rom#</key>
                <string>113-D160BW-444</string>
                <key>ATY,EFIVersionB</key>
                <string>113-D163A1XT-045</string>
                <key>ATY,EFIVersionROMB</key>
                <string>113-D163A1XT-045</string>
            </dict>
        </dict>
    </dict>

For those who want to downvolt / overclock the GPU, you can also add the PowerPlay Table. I've tested that, no conflict. And if all parameters inserted correctly, the system info should looks like this.
View attachment 2119918

CL!ng will also show a much higher Device To Device memory bandwidth.
View attachment 2119921

What I suspect is that extra memory bandwidth affect the GB5 scores
View attachment 2119733

Here is the detail result. Aparently, some tests affected by that extra memory bandwidth a lot, which makes the overall score is much higher.
View attachment 2119927

Anyway, before anyone complain, most likely this trick won't bring any extra performance to your real world task. Please don't expect too much.

On the other hand, there is no need to worry about overheat as well. Even there is no fan on the Radeon Pro Vega II. But since the fan profile is stored inside the graphic card's firmware. The fan will still spin up accordingly.
I can confirm that this also works great in macOS Ventura 13.2 for my Radeon VII in my Mac Pro 5,1. Score is back in the 90k area now as the SMU firmware again gets loaded onto the card.
However, Metal 3 which should be supported by the Pro Vega graphics is not enabled.. The GPU architecture and chip is basically the same as in the Pro Vega II, no technical reason for not having full Metal 3 support here. It is a matter of enabling it. Any advices?
 
Last edited:

roobarb!

macrumors 6502
Jul 30, 2009
272
183
Sure, my config is attached. Please be careful, the Power Play table is also there, which may not fit your card.

Anyway, I am also using Display Port.

I have no idea what changed, but in my recent rebuild of this Mac Pro I tried this again and it's worked perfectly. The info below is correct, I keep the Radeon VII in Slot 2 because otherwise the NVME card blocks most of the fans.
1675730926240.png

1675731108388.png

Thanks, maybe it doesn't make a real-world difference, but it's still cool! :)
 
Last edited:
  • Like
Reactions: h9826790

Dayo

macrumors 68020
Dec 21, 2018
2,236
1,270
I've just tested some parameters suggested by hush-vv
Added this as an option for Radeon VII to the next MyBootMgr release even if just a placebo.
Can you confirm whether this impacts on the need for direct GOP rendering?
 
Last edited:

monoton

macrumors member
Aug 15, 2006
60
49
Oslo / Tokyo
I have no idea what changed, but in my recent rebuild of this Mac Pro I tried this again and it's worked perfectly. The info below is correct, I keep the Radeon VII in Slot 2 because otherwise the NVME card blocks most of the fans. View attachment 2154648
View attachment 2154651
Thanks, maybe it doesn't make a real-world difference, but it's still cool! :)
Interesting. Did you have to change the path there to use the PCI-2 slot?
Code:
<key>PciRoot(0x0)/Pci(0x3,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)</key>

Is the device model name set by you there or is it actually loading the Pro Vega II drivers? I did the same under Ventura 13.2, however seems the PowerPlay table had no effect nor setting the model name manually. However, the SMU firmware obviously got loaded and performance went up quite a lot.
 
Last edited:

VaZ

macrumors 6502
Aug 31, 2012
318
84
I have an RX 560 laying around do you think this will work? What about Tahiti cards?
 

h9826790

macrumors P6
Apr 3, 2014
16,628
8,557
Hong Kong
I have an RX 560 laying around do you think this will work? What about Tahiti cards?
So far, the evidence points to the problem is that the VRAM bandwidth is somehow limited if no SMU firmware uploaded.

Therefore, the HBM is affected the most (due to it's high memory bandwidth).

The Polaris series is also affected, but usually can be work arounded by using HDMI dummy (if only one monitor is connected. For multi monitors setup, the VRAM defaulted to run at higher clock speed anyway), or even just sleep the cMP then wake it up.

In any case, this fix should only has effect when the workflow is very VRAM bandwidth limiting. It won't improve the GPU 3D / compute power in any other situation.

Tahiti should be not related.
 
  • Like
Reactions: VaZ and roobarb!

roobarb!

macrumors 6502
Jul 30, 2009
272
183
Interesting. Did you have to change the path there to use the PCI-2 slot?

Yeah, I think it's normally PciRoot(0x0)/Pci(0x7,0x0)... but don't quote me. PciRoot(0x0)/Pci(0x3,0x0)... is definitely right for my system.
 

blauesliebe7

macrumors member
Nov 23, 2021
42
12
I recently upgraded from an RX580 to AMD Vega64, Pixlas mod. Since i am so late to the party on the VEGA 64. Was there any kind of modifications vega users do to optimize the card with their Mac Pro 5,1's? Just curious.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.