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

I changed only TCCDL from 4 to 6. It solved the problems. The errors were hwinfo log errors. There was no artifacts in the game.

I think the same, it works very well. I use my own settings it gives even better performance than presets. thank you again for guide and bios.

@Asymetry I thought it would be a TCCDL value, I had to do the same thing to my RX470 - which even reported EDCs with completely stock settings :grimacing: Samsung memory really doesnā€™t play nice with Polaris it wonā€™t OC for shit and all the samples I had at least were inherently unstable and took a significant (thousands) amount of hours to identify and resolve the problem as those sorts of issues can be any number of things, same with the Hynix timings thousands of hours went into those as well it is not a five minute job outside of an R&D environment when you have all the information you need to hand.

Only good thing with Samsung is that you can at least run wicked tight timings at stock frequency with the instability resolved and itā€™ll run every bit as fast as an optimised OC on Hynix or Micron.

1 Like

Itā€™s really annoying that amd is releasing polaris cards with these settings. At the very least, there are free performance gains and power drops when tweaking card.

Unfortunately, my card does not respond well to memory overclocking. At the current settings, even +50 MHz, hwinfo logs errors. Itā€™s enough for the current situation. I wonā€™t be overclocking any more.

By the way, the card is not uefi, it gives this error, do you have any idea how can i solve it? @ket

Modified vBIOS break the signature which you can fix with the magic GOP, thereā€™s a link on the forums somewhere but I canā€™t remember where @Fernando might be able to help there. The timings I gave your card are optimised for maximum efficiency at stock frequency, overclocking attempts would require my other timings.

1 Like

Im sorry for asking, I got my rx580 red dragon to 2190mhz vram with amd adrenaline lv1 timings. Now im trying to tighten the timings, did it with my ddr4 ram days ago with this guide MemTestHelper/DDR4 OC Guide.md at oc-guide Ā· integralfx/MemTestHelper Ā· GitHub

As Memory Tweak XL doesnt work for me on windows 11 to test ram timing changes on the fly I have to change one timing value, save the bios, flash it, see if its stable and proceed (and if not reflash the one before my change via bios switch)? Is this the easiest, fastest procedure?

How can I read the actual timings that are applied at the moment? I dont trust the values shown by memory tweak XL (seem to be the fixed lv1 settings for my samung gddr5).

thanks guys!

Bandwidth checks with memtest_vulkan 0.5.0 (canā€™t get the program mentioned in the guide to benchmark like shown) got me around 212 GB/s with the setup above, compared to ~185 stock.

@richya2r First thing you should do is run OCLMemBench to see what your bandwidth is, then;

  • Never use the driver level timings they make performance and/or OCing worse
  • Download Polaris BIOS Editor, ATIflash and R_Timings
  • Download Final Fantasy XV benchmark. Set all graphics options to maximum but disable all nvidia stuff except for hairworks.
  • Download HWInfo64 and Rivatuner statistics server, set it up for an overlay so you can see EDCs occurring in realtime
  • Loop FF XV bench for at least a couple hours to check for EDCs

You donā€™t need to just change one timing at a time, the timings that are set in the vBIOS at the 1750/2000/2250MHz straps donā€™t impact boot or 2D clocks or timings so you arenā€™t going to have a card that wonā€™t display an output due to bad timings at worst the card just wonā€™t display, or display incorrectly, when you try to run anything 3D. You can edit vRAM timings on the vBIOS level with a combination of PBE and R_Timings, how to do that, and everything else you will need to know, is in the guide.

Alternatively if you canā€™t be bothered with any of that for a small donation I can send you the optimised timing straps I made for whatever ICs you have, literally thousands of hours of testing went into them and put together using my expertise from my time with Mushkin so they arenā€™t any ordinary timings, or any rubbish like ā€œ1-click optimisedā€ or mining timings, they are a completely different animal, designed for extreme performance and overclocking with absolute stability.

1 Like

Thank you for the fast and helpful answer. I added I didnā€™t get memtestcl to work the way it was shown.
So for me it would be best to keep my current vram frequency, improve timings as good as possible (order-wise I would stick to the DRam guide above?) and maybe get a chance to lower the minimum memory voltage.

With your info Iā€™m still able to boot into Windows/2D if I messed up it seems to be much less of a pain in the ass as I thought :slight_smile:

I really appreciate your guide, just the above answer was missing for some newbie like me!

@richya2r Attach a (clean) dump of your vBIOS along with the ASIC quality of your card I can give you a good foundation so you always have something to revert to if you mess up. Also; most RX500 series cards will top out around 2150MHz 24/7 stable with no EDCs so that should be what you aim for. Often the amount you have to loosen timings to hit 2200+ means you will lose performance, not gain it. You sure your card has Samsung memory? Reports of Samsung hitting 2100 completely stable let alone 2190 are extremely rare, almost non-existent in fact.

Weird. Thats my current configuration. I opened my stock bios, increased some voltage-values, copied the 2000 strap-string via PBE, edited it to almost completely match the (wattman lvl 1) timings AMD Memory Tweak XL shows me. I flash this with wattman-standard-settings. after reboot i get back to wattman, insert my old settings (but now without the lv1-setting, its now on auto) and then boom - blackscreen, reboot.

what am i doing wrong?

thank you all!

most of the time my bandwith is around 228-229, sometimes 230.

@richya2r Iā€™d need a copy of your vBIOS to see what youā€™re doing wrong. Itā€™s likely something to do with the timings you are trying to use but I canā€™t be specific without seeing what you have done. The Samsung timings I made are optimised for near-stock frequency as none of the samples I had ever wanted to go above 2050MHz the only thing I can say with a high degree of certainty is that my optimised Samsung timings at near stock frequency with your GPU frequency would be getting the same sort of bandwidth, possibly a bit more, 234-238 maybe.

1 Like

Iā€™m a new user, so im not able to upload a zip fileā€¦

here is a zip with the stock bios and one with increased power limits and adjusted timingsā€¦ i assume ā€œAMD Memory Tweak XLā€ showed me some, but not the right limits wattmans level 1 set, so maybe the timings I changed were way to tight or off in another way.

@richya2r Give me 10 mins and Iā€™ll make some changes to your modded vBIOS. By the looks of it you have a Powercolor Red Dragon, correct? Whatā€™s the ASIC quality? You can get that with GPU-Z.

1 Like

Itā€™s a red dragon, yes. ASIC is 78,1 %. :slight_smile:
As I noticed my oc values arenā€™t stable all the time.
GPU freq alone could get slightly higher than above, memory the sameā€¦ Together itā€™s not nearly as high.

@richya2r Here is a quick rebalance of things - should fix your black screen. You messed the memory timings up lots of newb mistakes in there ;). The timings I stuck in are not optimised I donā€™t have a frame of reference for Samsung memory that does over 2050MHz reliably stable so consider the timings a starting point. I still have an RX470 with Samsung memory that absolutely despises frequencies above 2050MHz so as you can test high frequency timings you could test some of my brews, find something stable for your card the 470 I have might for the first time in itā€™s life see above 2100MHz stable. Iā€™d recommend uninstalling your drivers with DDU and installing fresh after this vBIOS update, would be well worth finding your optimal GPU frequency to power curve too those Red Dragons have absolutely horrible coolers on, cheap, nasty things. Not as bad as the XFX ā€œfatboyā€ 590 cards, but still really bad coolers.
Baseline.zip (110.2 KB)

1 Like

thank you for all your work. voltage wise Iā€™m hitting kind of a hole. setting 1200 results in ~1.169, going above 1200 results in ~1.210+

any way to fill the hole and set voltages in this gap?

edit: its amd adrenalin with wattman. MSI afterburner did the trick.

You can set an offset to help with voltage but your card doesnā€™t seem to use an IR3567B or an NCP81022 so without knowing what controller your card has there isnā€™t anything that can be advised really. You really donā€™t need to go anywhere near 1.2v anyway with an ASIC of 78% youā€™re likely going to find about 1.125v the most you need to reach your maximum stable GPU frequency. 1.55GHz is good on paper but in reality the performance gain over 1.45GHz using the exact same memory timings is so small (2-3FPS maybe on average) you just donā€™t need to bother youā€™ll get 99% of the performance with 1.45GHz - 1.5GHz, the latter depending if you can get it at a sensible voltage. At those frequencies with fully optimised memory timings, with or without a memory OC, youā€™re at the physical limit of the performance the hardware can offer before the returns are so small itā€™s not even worth mentioning anymore. I literally had an RX580 that performed identical to the RX590s I had despite the 580 being clocked 100MHz slower on the core, everything else you could call equal as both cards used the same memory ICs and were capable of the same memory OC (8.8GHz) and used the same optimised timings.

1 Like

Values in the quoted message contain current scaling information. Changing these alone will not have any impact except for inaccurate levels reported to hwinfo.

They come useful once there is hardware mod done on the board. As the overcurrent protection threshold is raised, reported levels to hwinfo decrease. Then itā€™s needed to increase these values according to the ratio of OCP level change to maintain accurate power consumption in hwinfo

Patching memory controller itself can help in situations when there is weak memory that canā€™t overclock well. Or even good memory that canā€™t work at itā€™s default clock due to some other reason.
I found this patch works good for hynix and samsung memory when memory clocks are below approximately 2000mhz. When going above 2000mhz it will likely cause performance degradation.

Another thing noticed, during furmark test, while it will improve performance in 1920x1080 fullscreen benchmark, it will degrade performance in 960x540 windowed benchmark by few FPS

Drivers probably dropped second phase and kept running everything on a single phase.
At AMD support they were stubborn and didnā€™t want to provide any informations about this.
To look for: PSI0L PSI1L
Apparently, both bits should be set in vBIOS, where load line/offset is configured. Changed 0E to 6E but i do not see any differenceā€¦

Laptop schematic confirmed this is hardware limit of 70A set by OCP resistor. I did hw mod here, GPU total power can reach 115W now, with core current 95A
I could pass valley benchmark at 1350/2050mhz without single memory error.

@karmic_koala keep us informed of that memory controller work. Performance shouldnā€™t decrease in windowed mode unless your changes are making something in the driver work more as intended (in theory something in windowed mode wouldnā€™t stress the GPU as much because its not dedicated full screen) or something is slightly off with what youā€™ve tried so far. From memory without checking Iā€™m pretty sure Iā€™ve seen 99% memory controller utilisation on the 8GB RX470 I have in the backup system when running the FFXV benchmark @ max settings with all nvidia stuff turned off except for hairworks @4K so you probably want to start using that bench for your memory controller testing.

Iā€™m not surprised AMD didnā€™t want to help, thats tantamount to admitting the job they did on Polaris cards was crap compared to what can actually be got out of them when properly optimised, and when I say properly optimised Iā€™m not even talking per batch basis let alone per card basis just properly optimised universal tuning. I can use identical settings on Hynix and Micron ICs with no difference in performance, Samsung are a bit different and I wouldnā€™t even want to optimise a card with shitty Elpida memory.

Now with samsung memory and ubermix3.2 i see controller utilisation 100% or more most of the time in furmark 960x540 windowed (mem clk 1900 as an example), but FHD fullscreen still maxed out 97% at most.

I can go 2070mhz on memory, but do get few errors in furmark. Then i saw your posts about samsung memory not doing so well, thought about it a little.

Which memory chips from samsung you tested? It would appear there is something in common with all samsung chips that doesnā€™t play well on polaris, maybe some timing parameter.
Or the MC in polaris is simply bound to 8Ghz and anything more than that is only coincidence or lousy timings used. Iā€™ve seen somewhere in sources, for one generation of cards, there are MC PLL registers.
What can you get with micron chips?

@karmic_koala with Micron and Hynix ICs I can get to 9Ghz without errors and very good timings, you need a bit of luck to get an IMC that can handle that speed but even the ā€œweakā€ IMCs with Micron and Hynix I donā€™t have a problem hitting 8.8GHz with very good timings. From memory I only recall seeing 2 Polaris cards that could OC well with Samsung memory, either a revision was made to Samsung ICs or something very specific in the vBIOS was changed to make them play much more nicely.