[Guide] How to Modify a Polaris (Radeon RX Series) GPU

@ket Right, after another hour and a half of benchmarking, I’ve come to a very interesting conclusion. I tried your strap and got the flickers again, so I decided to forget the 1400mhz overclock and just focus on getting 1350 stable. Everything seemed to fail except again the original tweaked BIOS you posted, but even that one ended up having one flicker right at the end of the demo. So then I remembered that when you sent me the original strap and I used that in the BIOS I had until then, the card passed 3DMark without any issues or throttling and got a great score. What was different in that old BIOS? The voltages, as they were those 65282-65288 things(offsets i think they’re called). So I opened that great old BIOS again in HxD, got rid of the Zero Fan mode, then opened it in PBE, increased Power Limit and TDP(221,220) and tweaked the fans a little to get a little better cooling. I then applied the strap I modified from you and gave everything a test.

To my susprise, it passed again with 0 flickers and 0 throttling. Best of all, it got through it all with around 1020-1080mv, most of the time staying around 1050(Auto Voltage limit in the BIOS is at 1075mv). I think the only explanation to this is that the drivers really glitch out when dealing with static BIOS voltages, at least on my card. Either way, I’m sticking to offsets from now on.

To sum it all up, this is the strap that worked: 777000000000000022CC1C00106A5D4DC0691016B78D160B0068C70014051420FA8900A00300000015153F48B1384C1A

The rest of the stats/benchmarks are in the screenshots. I’m very happy with this strap and will probably keep it as it scores 222.5GB/s at 1350 core and 226-227GB/s at 1400 core. Next time I’ll probably attempt 1400mhz with an 1100 Auto Voltage limit.

Thanks again for all your help! :slight_smile:

Screenshot_43.png

Screenshot_44.png

Screenshot_45.png

Screenshot_46.jpg

Screenshot_47.png

in case you run into flickering again at 1400mhz core, try considering these:

1. memory heat, or insufficient power to the memory
2. TDC limit, no idea what you have in your bios (for 220W target power it should be at least 180A) or what type of VRM is on the card but it’s possible you’re hitting current limit, due to the fact when you set a bit higher voltage, 1050-1090mv, GPU throttled down to 1335mhz… also there are 6 or 7 TDP/TDC fields in bios, did you change them all?

@karmic_koala I saw in the first post here that it’s not a good idea to modify the TDC value, since it can damage the VRM. I don’t know about the 6/7 TDC fields in the BIOS. Could you elaborate on that? I think you mean there are 6/7 values that can be edited in HxD for the 7 power states. The card isn’t throttling at all right now and it’s far from getting even close to 220W. I only set 220W to make sure there’s no throttling. The VRM is apparently crap, but since the card ships with a 125W power limit and a 50% power control limit, that equates to 187.5W being the max safe power. If I divide 187.5 with 1.150(card’s stock Auto Voltage), I get 163A as max safe current. As you can see, it’s now peaking at 142W Core Power and before I got into BIOS modding, it peaked at around 175W while gaming with a voltage peak of over 1.2V(and a 1150mv Max Auto Voltage in the BIOS). I’m not planning on going over 1137mv. If the card can’t do 1400 at 1137, I’m gonna back off, since at that point the benefits are not worth the extra noise/heat. I guess we’ll see if I’m current limited tomorrow when I try 1400, but as you can see in HWiNFO, the card seems to be ignoring the TDC in the BIOS and hitting 138A.


that looks odd

from my experience, the GPU was giving extra memory errors when i had TDC too low and under certain conditions the core clocks were also dropping

this is quick cp from techpowerup regarding some of the TDP/TDC limits in bios:

TDP: 60 W
TDC Power: 62 A
Battery Power: 62 W
Small Power Power: 62 W
Max. Power Limit: 62 W

you could dig into linux amdgpu driver to find exact structure and all of these fields. one of these isn’t documented anywhere, IIRC it is marked as "reserved" but comparing few bios dumps i figured out it also holds TDP value



That is a really bad idea unless he knows the exact specs of the FETs, entering 180 TDC without knowing that has a very real and present danger of the VRMs literally blowing up.

if there were 4+ phases for the core i would not worry about it, the card would hit hardware overcurrent limit in the worst case (just like 70A limit on rx560 i have)

After some testing today, it’s beginning to be clear to me that 1350mhz is the limit with this GPU, at least if I’m to keep a somewhat silent card. 1400 and 1380 crashed with 1125mv at the same point, which is when the card got to 76C. I didn’t get flickers, just a black screen, again without a system or driver crash. 1375 at 1093mv crashed at 72C. 1375 at 1075mv crashed at 70C. 1350mhz at 1075mv passed again with no issues, despite hitting about 75C like yesterday. These were all done with a Max Power Limit of 187 and a TDP of 186, just to be on the safe side. Any voltage above 1100mv results in throttling and the higher I go with the voltage, the bigger the throttling. So it’s clear that the card needs quite a bit more voltage to go 1350mhz+, but voltages above 1100mv have so far all resulted in throttling and black screens, so I’m stuck.

This all reminds me of overclocking my CPU where 3.8ghz at 1.285v is rock-solid stable but to be stable at 3.9ghz, I need at least 1.31v. In both cases, the extra performance is too small to make up for the extra heat/noise and decreased longevity. I’ll probably keep the 1350 at 1075mv. That’s pretty much on par with a 1380mhz RX580 in most gaming situations thanks to the optimized memory timings, while also being relatively silent.

Thank you both for your help! :slight_smile:



1350 is kinda low for a 570, definitely didn’t win the silicone lottery with that one. ASIC quality is better than most though so you do at least get a nice power efficient chip with low levels of leakage.




Thats the problem XFX can build their cards incredibly dodgy, one of the 590s I had used 6 phases but was phase doubled and used an NCP81022 the card blew up (literally) after about 10 mins of load use because the VRM was that shit.

Yea, it’s 1350 in 3Dmark, tho the card seems capable of holding 1400 at least in Dirt 4 and Dirt 3. But since I’m aiming for absolute stability in even the heaviest of loads, I’m going to have to stick to 1350. Nothing more annoying than playing a game and just getting past a hard stage of it and then the system crashes and you have to do it all over again. I’d rather deal with 1-2% less FPS than that. I think the chip could go higher but the VRM just gets too hot with this relaxed fan profile. I see throttling even at 1350mhz if I up the voltage so this is probably something that’s power delivery-related. Judging from the pictures in that Overclokersclub review of the card, it seems to have 5+1 phases and the PCB looks identical to the one used in the XFX RS RX480. That card has a TDC of 107, so even lower than mine despite being a 480.


overcurrent protection holds it back most likely. i’ve seen similar, running valley benchmark the clocks would drop few dozen mhz when load intense scene would come up, playing less demanding game like UT3 the clocks remained at the set value


oclmembench is pretty light on the load, you could go higher to see what the card can handle, but don’t start 3D benchmarks at that time as they would crash it. RX560 in a laptop was able to pass 1560MHz core with 1.35-1.40V, 1580MHz started and crashed halfway…

Yea, I only use oclmembench as a memory strap speed test. Of course I don’t use it for stress testing as it’s not an actual 3D workload. And yes, I could set a very aggressive fan curve, go back to the card’s default voltage of 1150mv and aim for 1380-1400mhz, but then the noise would be pretty bad. Before BIOS modding, I was actually able to sustain 1400mhz in demanding titles like Wreckfest, but I had my fans at around 80-90%, which…wasn’t a pleasant experience. So, I think the high temps from the low fan speed are causing the throttling when I try high voltages as the VRM gets hotter and efficiency goes down.

@TheVic1600 on a closer look of your card it only has a 5 phase VRM that will limit you for OC potential on the core. Standoffs on the clooler look fairly tall you might be able to get some low profile BGA sinks on the memory, what you can do as well is measure how tall the standoffs are on the backplate of your card then look for some thermal pads to bridge that space to put on the rear of the memory that is at least 3.2w/mk, it’ll turn that backplate into something useful by taking some of the thermal load off of the primary heatsink which will help keep overall temps down and stop the fan from spinning up as much. I’d also replace the thermal pad over the VRMs as the stock pad likely doesn’t have a very good thermal rating, something that is at least 6w/mk would be preferable but because the pad is quite thick you might not be able to find anything better than 3.2w/mk but even that is probably still better than the stock pad. Those changes should give you a nice improvement for thermals on the memory and because some of the thermal load is shifted to the backplate VRM, memory and GPU temps should all go down quite nicely. I’d probably get some HY-9A for the GPU itself as well to help really keep those temps down.

Thanks for the tips, but the card’s still relatively new and in warranty so I’ll refrain from physically messing with it for now. Don’t want to run the risk of breaking something with the current GPU prices. Cheapest RX570 8GBs here are now selling for double what I paid for mine. It’s utter madness. And at this low voltage the temperature/noise levels are actually more than decent. Maybe if I’m lucky I can push the voltage down even more.

EDIT: Indeed further undervolting is possible as the card just passed a Fire Strike test without any issues at 1062mv. Shaved another 2C off the peak temp with the card fluctuating between 74 and 75c at its peak. It was drooping as low as 1V and still I saw no throttling whatsoever. Also with a score of 14356, this is a new best for me, tho I realize it could just be a rounding error, since it’s not much more than the 14334 I got before.



@TheVic1600 when testing for stability a good test to do is enable Virtual Super Resolution, download the FFXV benchmark, set everything to max (but disable all nvidia related stuff except for hairworks), set 4k resolution and let the benchmark loop. Very, very reliable way to test for stability. I used to test a full 24hrs to make sure there were no errors with new timings or anything because I want epic levels of stability but you can get away with as little as 3hrs. You can then use a little extrapolation to decide if you are happy with the result.

@ket Thanks, but I prefer to test practically, i.e. with gaming and short benchmarks. 3h or 24h is an unrealistic benchmark for me, since I tend to play no more than 1h without a pause and about 2-3h a day. If the card gets through 3DMark without flickers or black screens I consider it stable-ish until I get a crash in a game. If I do get a crash or artefacting, I know what to do(increase the core voltage or loosen the timings). But so far at 1062mv, the card has gone through hours of Dirt 4, Doom 2016 and Wreckfest without any issues, so I’m very happy with it. Max temps were 77C in Doom and about 73C in the other two, tho the card remained very silent in all of them, which was a pleasant change from the jet engine sounds it used to make.

Hi, i have problem with my AMD Radeon Pro WX4150 used in Dell Precision 7520. This is MXM 3.0 format card to laptop.
GPU stuck on 214Mhz clock and don’t want to work faster. I was looking for info in web that the problem may be drivers or a problem in the GPU BIOS. I think the problem may also be ine motherboard BIOS or power plan setting (in every option is set maximum preformance).

I know Radeon WX4150 is polaris 11 architecture. I read this topic and I wonder if modifying the GPU BIOS can have an effect, i.e. is it possible to leave only higest speed? Removing 214Mhz and the rest and leaving only highest - 1053Mhz? If something limits the GPU speed and chooses the lowest, if there is one, it will switch to it?

Or is it possible to see where the information about speed selection comes from? With benchmarks, despite the GPU load at 100%, I still have a speed of only 214Mhz, and for example, the memory speed can jump from 300Mhz to 1500Mhz.

I also have a question why in the speed and voltage values ​​for 214Mhz it is 750 (like 750mV), and for the other values ​​65282, or similiar? Maybe there is a problem that the card or some other system reads these values ​​incorrectly and therefore does not give higher speeds because it does not know what voltage to give? Will it help to change to a value of 1000mV or 1100mV? What is the max voltage for this card?

Can anyone advise me where to look for the cause of this problem? I will be very grateful.

Story: I used to have a 10-year old Radeon 5770 but recently upgraded to a 570. I found quite interesing the Zero RPM mode, where the Fan completely stops when it is either Idle or with low usage.
Because I’m used to play on low graphics mode and the 570 provides far more performance than I really need, I want to exploit this with a deep undervolt where even in Full Load to see if it can avoid to turn on the Fan. The problem is, I didn’t really found info about people trying to run Polaris at below the default Voltage (Seems to be 0.75V) in the lowest PState. As such, I don’t know if lower values are properly recognized, average values, or anything else that can tell me what I expect.
I didn’t tried any of the Windows Software tweaking tools to see if I can manage to make deep undervolts before playing with VBIOS modding.

Card in question: MSI Radeon RX 570 ARMOR 4G OC / https://www.msi.com/Graphics-Card/Radeon…C/Specification
VBIOS on TechPowerUp (Dumped with GPU-Z and matches the CRC32): https://www.techpowerup.com/vgabios/1982…570-4096-171109
It has Samsung VRAM


My idea is to see if I can manage to get it at sub-80°C temps Full load or so Fanless, even if I have to run it @ 500-600 MHz, same with Memory. I know that for Ethereum mining these models seems to do Full Load 1 GHz @ 0.8V, whereas Memory is usually overclocked or Timming optimized. I don’t know if its possible to set the voltage dramatically lower or how the Frequency/Voltage curve scales to the bottom cause I didn’t find any other people doing that. Also, there is a thing which I didn’t figured out, does the Memory Voltage can be undervolted? Cause VDDCI seems to be the Polaris Memory Controller voltage, not of the DRAM chips themselves.



Do note that because I’m running an unusual setup (The 570 is passthroughed to a Windows VM, Linux host, QEMU as VMM), I can sideload the VBIOS with QEMU instead of actually flashing the modded ROM, which should give the same results. I used to do that with my previous Radeon 5770, which had a ROM with a patched UEFI GOP that couldn’t even fit on the physical EEPROM. The problem is that most modern AMD GPUs usually suffers from a reset bug, and while there is a workaround available that was released recently (vendor-reset project in github), I still didn’t manage to get it working. Basically, testing will be a bit of a hazzle, as I have to power cycle the computer and boot Linux, then Windows. So I prefer to gather info before doing it myself for when I’m in the mood.



This sounds like the GPU is throttling or not being provided enough power. I’d start by replacing the TIM and thermal pads used in the system.



Not something I’ve spent a lot of time looking at but on 500 series without specific edits, probably to the ASIC table, minimum voltage the card will use is 0.75v even if you set lower. That armor card looks like a rev 1.0 so redoing all the thermals would be a good place to start as the 1.0 cards had issues with bad thermals thats why you see so many of them about still now because nobody wants them only to have hassles fixing the thermals.



Whatever works for you but don’t say you weren’t warned if something blows up


Good to know that I can’t go lower than 0.75V. I have another 5600XT that in Linux would not take Voltages below 0.8V (Even when the default, unmodified values for lowest PState are 0.77V or so), but didn’t bothered with that one yet.

I have no idea about Polaris BIOS editing beyond the information in your guide and similar ones that are usually found in Mining oriented sites, so I don’t know anything about the "bad thermals". Any pointers, keywords, whatever to google? I will try googling about the ASIC table. But it seems that this would be a dramatically custom mod…


Good to know that I can’t go lower than 0.75V. I have another 5600XT that in Linux would not take Voltages below 0.8V (Even when the default, unmodified values for lowest PState are 0.77V or so), but didn’t bothered with that one yet.

I have no idea about Polaris BIOS editing beyond the information in your guide and similar ones that are usually found in Mining oriented sites, so I don’t know anything about the "bad thermals". Any pointers, keywords, whatever to google? I will try googling about the ASIC table. But it seems that this would be a dramatically custom mod…




I haven’t had a 570/580 Armor myself so I don’t know where all of the thermal issues lay but you’ll go a good way to solving them by taking the cooler off, using some Halnziye HY-A9 on the GPU and measuring the thickness of the thermal pads on the memory and VRMs then replacing the pads with ones that have a high thermal conductivity rating (6w/mk or higher) also make sure when cutting the thermal pads to size that you cut them so they cover the full area they need to one of the problems the Armor v1 has is that the thermal pads on the memory at least don’t fully cover the RAM ICs. Also looking at some images you have a seperate VRM heatsink it’s not all part of the primary heatsink so solving the thermal issues that there are should be very easy its much easier working with a card that has its own VRM heatsink.

Honestly I don’t see why you would want to undervolt so heavily going below 0.75v is totally unnecessary anything at or under the 1.056v - 1.075v range will ensure a very cool running card that the fans won’t need to spin up much for and if you have a card that has a high ASIC quality you won’t need any stupid high voltages, hell, even with cards that have an ASIC quality of the mid 60% to mid 70% range let alone anything higher still has an optimal voltage range of between 1.056v and 1.15v. Anything above that and you are talking huge voltage bumps (.05v) for tiny gains anywhere between 10MHz and 25MHz. Polaris is an architecture that isn’t particularly limited by core frequency but memory speed and bandwidth, memory speed and timings being the same you really aren’t going to see any noticeable gains in performance between an RX580 with a core clock of 1.425GHz and an RX590 with a core clock of 1.55GHz, quite a jump but literally no real world benefit that is worth it only benchmarks will really tell you the 590 is faster.