Contribute
Register

[GUIDE] Injection of AMD Vega Power and Fan Control Properties

At the risk of sounding like the noob I really am:
The Nitro+ VEGA cards have dual bios - one for quiet and one for power operation. Could the varying fan speed experiences of different people, to some extent, be explained by this? How do you know which bios your VEGA card is currently using? And how do you change it on a Hackintosh?

There is a switch on the card. It’s very small, mine is on the opposite side of the power connectors near the HDMI/DisplayPort outputs.
 
Thanks Gigamaxx, I found the minuscule switch:

dual_bios_switch.jpg


Do you know which way is what bios? In the photo the switch is set to the right (away from the back of the computer) - is that the higher power and performance setting?
 
At the risk of sounding like the noob I really am:
The Nitro+ VEGA cards have dual bios - one for quiet and one for power operation. Could the varying fan speed experiences of different people, to some extent, be explained by this? How do you know which bios your VEGA card is currently using? And how do you change it on a Hackintosh?

There is a switch on the card. It’s very small, mine is on the opposite side of the power connectors near the HDMI/DisplayPort outputs.

Thanks Gigamaxx, I found the minuscule switch:

The switch allows the selection of 'Power' mode and 'Balanced' Mode, where Power mode will run the Vega card at the full TDP and balanced mode will run the card at a slightly lower TDP.

From my testing the switch only seems to work in Windows ... I think essentially it switches between two internal SoftPowerPlayTable's that are read from the selected VBIOS and set via the Windows AMD Vega drivers.

From my experimentation it seems that the MacOS drivers work in a completely different way and configure all of the cards parameters it's self, in-fact by default MacOS will upload a custom VBIOS but we disable this by setting the key PP_EnableUploadFirmware to 0. Also the default SoftPowerPlayTable used by MacOS is truncated hence the need to inject a complete one by means of PP_SoftPowerPlayTable.

Do you know which way is what bios? In the photo the switch is set to the right (away from the back of the computer) - is that the higher power and performance setting?

Switch in Rear Position (Towards rear back plate) = Power Mode
Switch in forwards Position = Balanced Mode

Cheers
Jay
 
Last edited:
It worked now. What happen was I had multiple copies of the app, in the download folder, Document folder and desktop. I deleted all and empty the trash bin. Then I download the app again, and MOVE it to the desktop. It worked from there.

Glad its working for you now ....

Cheers
Jay
 
Translocation causes an app to be copied to a random read-only file path and executed from there. It happens if you download an app and run it from where you downloaded it. You have to move it (with finder) to another folder and that will clear the 'translocation' flag. You can move it back to the original folder it was in and it will work fine. The important thing is you move it at least once.

@zakklol,

Many thanks for clarification, I'll update my notes in the guide with this information.

Cheers
Jay
 
The switch allows the selection of 'Power' mode and 'Balanced' Mode, where Power mode will run the Vega card at the full TDP and balanced mode will run the card at a lower TDP.

From my testing the switch only seems to work in Windows ... I think essentially it switches between two internal SoftPowerPlayTable's. From my experimentation it seems that the MacOS drivers work in a completely different way and configure all of the cards parameters it's self ... in-fact by default MacOS will upload a custom VBIOS but we disable this by setting the key PP_EnableUploadFirmware to 0 also the default SoftPowerPlayTable used by MacOS is truncated hence the need to set it by means of PP_SoftPowerPlayTable



Switch in Rear Position (Towards rear back plate) = Power Mode
Switch in forwards Position = Balanced Mode

Cheers
Jay

I found I get a small increase in Geekbench compute 1-2k but to me it’s not worth the 20-30% power consumption increase. In windows it is slightly larger increase but still not worth it.
OpenGL doesn’t increase much if at all for me either in OC mode.
 
I found I get a small increase in Geekbench compute 1-2k but to me it’s not worth the 20-30% power consumption increase. In windows it is slightly larger increase but still not worth it.

@Gigamaxx,

I undervolted the HBM memory and increased the HBM clock to 1045Mhz .... this resulted in a good performance hike and lower temperatures/TDP ... can't remember what i set the voltage to of the top of my head, you just try dropping it a bit at a time and see if its stable .. same goes for the HBM clock ... Lots of users have reported HBM clocks of 1100Mhz+ but its very chip dependant.

Increasing HBM clock seems to give better performance increase than GPU core clock, and as i said by undervolting you can get more performance with lower temps.

Since I have the Liquid Cooled Edition of the card temps and noise are not such a problem.

Pretty happy with it now, I get a score of around 32000+ with the default luxmark scene, temps stable at 65 Degs C, Fan/Pump RPM max out at 2400RPM.

Cheers
Jay
 
Hi @jaymonkey I honestly didn't want to have to post but I can't figure out what to do.

I already have Lilu and WG. I was following the guide however, gfxutil can't find my card in GFX0, after checking ioreg I did find it either way and the location seems to be the one in your guide.

Image 2019-01-04 at 11.57.42 PM.png


I kept going and generated my updated config, after rebooting I think I see the data in ioreg too. (I'm attaching it)

That being said, I still feel the card is being super noisy. When I boot, as soon as the login screen shows the card goes completely silent, and then it starts ramping up until it's noisy.

Any advice is appreciated!


EDIT:

It's actually working, simply the default IDLE RPM is too high for me. I will adjust accordingly. Thanks!
 

Attachments

  • ioreg.iojones
    4.4 MB · Views: 94
Last edited:
I already have Lilu and WG. I was following the guide however, gfxutil can't find my card in GFX0, after checking ioreg I did find it either way and the location seems to be the one in your guide.

EDIT: It's actually working, simply the default IDLE RPM is too high for me. I will adjust accordingly. Thanks!

@pmcnano,

Yes that makes sense ... I think for all systems with Air Cooled Vega GPU's that the Idle & Target RPM defaults are a bit on the high side, from my experimentation it seems that you should always set the Idle and Target RPM to the same value, this seems to be the Speed that the driver will always try to maintain when the card is not under load. I'm not sure what the Minimum speed does as I've never seen my system drop below the Idle/Target RPM.

What did you set your Idle Speed to ?
Did you also set the Target Fan RPM to the Same value ?

You could try a bit of undervolting which can help to keep the temps down and if stable you can then reduce the Maximum Fan RPM which will help to keep the fan noise down under load. I was able to undervolt and overclock the HBM to 1045Mhz on my card which resulted in a performance gain and drop in Temps/TDP which was a win win.

Its shame we don't yet have a full understanding of how the settings effect the PID algorithms the driver is using to control the Fan .... it seems to be a case of experiment and see what works ... hopefully enough people will try the method and report what works for them ... so we can build up a more detailed guide on how to make the adjustments.

Cheers
Jay
 
So this looks like exactly what I need to get Clover back to using "detect" for injection and still have the fans fixed. (Currently I'm injecting the VGTab kext).

Only thing is, when running the gfxutil check command I get:

Code:
DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)

Rather than

Code:
DevicePath = PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)/Pci(0x0,0x0)

So should I proceed just using my device path for the key?

Thanks!

EDIT: Just want to make sure, as I tried that per the following instructions, but it didn't seem to affect the fan speed. Can't see a mistake in my plist which appears fine in Clover Configurator, but still looking.

"If the PCI Device Path for your Vega is different to the key value in the code you inserted in Step 4 then simply copy the PCI Device Path from the terminal output of GFXUTIL and paste it into your config.plist, over-writing the value from the example code above."

EDIT 2: Not sure if it matters, but I have "change GFX0 to IGPU" and "change PEGP to GFX0" set for patches. When I inject VGTab kext with Clover (and it's working), I see the PP_* parameters here (see image).

Workhorse — IOService — GFX0@0 2019-01-05 16-47-21.png
 
Last edited:
Back
Top