OverdriveNTool - tool for AMD GPUs

Discussion in 'Videocards - AMD Radeon' started by tede, Aug 6, 2017.

  1. tede

    tede Guest

    OverdriveNTool - tool for AMD Hawaii, Fiji, Polaris, Vega GPUs

    Hi all
    This application is for editing some parameters in the AMD OverdriveN API supported GPUs (currently 290, 290x, 380, 380x, 390, 390x, Fury, Fury X, Nano, 4xx, 5xx series, Vega 56, Vega 64) and Overdrive8 API supported GPUs (currently Radeon VII, RX 5000 series)
    I've made this because WattTool has stopped working since driver 17.7.2.

    System: Windows 7 or newer
    GPU: AMD 290, 290x, 380, 380x, 390, 390x, Fury, Fury X, Nano, 4xx, 5xx series, Vega 56, Vega 64, Radeon VII, RX 5000 series
    Driver: 17.7.2 or newer

    Command Line:
    apply profile "Name" to GPU with id=[gpu_id]
    same as above, but with confirmation message that application started and everything went ok.
    reset GPU with id=[gpu_id]
    compare current values of GPU with id=[gpu_id] with profile "Name", and eventually set this profile if not equal
    compare current values of GPU with id=[gpu_id] with profile "Name", and eventually set this profile if not equal, with additional message if not equal found
    only compare current values of GPU with id=[gpu_id] with profile "Name", with message if not equal found
    displays all messages (eg. errors) in cmd.exe console window, instead of gui messages. Only commands that are put after -consoleonly are affected, example:
    "OverdriveNTool.exe" -consoleonly -r0 -p0"1" -r1 -p1"1" -r2 -p2"2" - will affect all commands
    "OverdriveNTool.exe" -r0 -p0"1" -r1 -consoleonly -p1"1" -r2 -p2"2" - will affect -p1"1" -r2 -p2"2" commands only
    when added to commandline normal GUI will be displayed after program finishes with all other commands
    program waits specified time before parsing next command, useful if you want to add some delay for example on windows startup, can be used multiple times in one commandline
    example: OverdriveNTool.exe -wait3000 -r0 -wait500 -p0profile1

    [gpu_id] - it's the first number taken from GPU description, for single video card it's 0
    "Name" - name of the profile that was saved ealier, must be quoted if has spaces inside

    OverdriveNTool.exe -p0myProfile -p1"Profile 2"
    In this example application starts without gui, then sets "myProfile" to GPU with id=0 and "Profile 2" to GPU with id=1 and then exit.

    commands can be used all together, for example:
    OverdriveNTool.exe -p0myProfile -r0 co1"Profile 1"
    On configs with more than 10 GPUs [gpu_id] must have 2 digits, for GPUs 0-9 leading 0 must be added, example: 00,01,02,03,04,05,06,07,08,09,10,11,12. Usage example: -p05"Name"
    It's possible to use * as [gpu_id], which means it affects all supported GPUs, example:
    -r* -p*MyProfile -p2"Custom profile" cm*MyProfile

    -ac[gpu_id] GPU_P[num]=[value];[value][;0] Mem_P[num]=[value];[value][;0] Fan_Min=[value] Fan_Max=[value] Fan_Target=[value] Fan_Acoustic=[value] Power_Temp=[value] Power_Target=[value]
    -ac is similar to -p command, applies values but without using profiles. Format is identical to ini profile. All not specified values will remain untouched. Can be used with other commands (-consoleonly, * as [gpu_id], -r, -p... etc.)
    [num] - Pstate number, using # as [num] will apply to highest available Pstate for scpecified GPU
    [value] – value, for GPU and memory PState first value is clock (MHz), second is voltage (mV), third optional ;0 makes this Pstate disabled.
    Putting * as Memory or GPU value will skip applying this value, for example:
    -ac0 GPU_P7=*;800 Mem_P3=1000;* (only applies GPU_P7 voltage=800mV and Memory P3 clock=1000MHZ)
    -ac0 GPU_P4=*;*;0 (only disables GPU_P4 without changing it’s values)

    For I2C settings use –ac with Offset=[value] LLC=[value] PhaseGain=[value] CurrentScale=[value]
    I2C must be enabled and supported for specified GPU, otherwise it will not work. Offset value is multiplied by 6,25mV, so 10 = +62,5mV, -5 = -31,25mV
    -ac0 Offset=10 LLC=0
    -ac0 Offset=-5 LLC=1 PhaseGain=000000 CurrentScale=60

    Commands example:
    -ac0 GPU_P7=1200;800 Mem_P2=1000;850 Fan_Min=1080 Fan_Max=1700 Fan_Target=70 Fan_Acoustic=700 Power_Temp=90 Power_Target=50 -ac1 GPU_P#=1200;800 Mem_P#=1000;850
    -ac0 GPU_P7=1200;800;0 Mem_P3=1000;850 Fan_Min=1080 Fan_Max=1700
    -consoleonly -r5 -ac5 GPU_P#=1200;800 Mem_P#=1000;850 Fan_Min=1080 Fan_Max=1700 -ac4 Fan_Target=70 Fan_Acoustic=700 Power_Temp=90 Power_Target=50
    -ac* Power_Target=-1 GPU_P7=*;*;0
    -wait1000 -r0 -ac0 GPU_P7=1200;800 Mem_P1=700;850;0 Mem_P2=750;850;0 Mem_P3=800;850;0 Mem_P4=1000;850 Fan_Min=1080 Fan_Max=1700 Fan_Target=70 Fan_Acoustic=700 Power_Temp=90 Power_Target=50
    -ac0 Power_Target=50 -ac1 Power_Target=-50 -ac2 Fan_Max=1700 Fan_Min=1080 -ac1 Fan_Acoustic=700

    -getcurrent - prints current values for all supported GPUs in cmd console window.
    restart GPU with id=[gpu_id]. It's similar to devices manager enable/disable GPU. Useful for immediately apply registry changes done to AMD keys like SoftPowerPlay table. It requires admin rigths to work.

    Additional info:
    -Workaround for bug in 17.7.2 drivers, when driver sometimes uses default voltages instead of user settings: use reset and re-apply profile.
    -It's possible to disable/enable each P state. To do this click on P0, P1.. etc. label. If P state is disabled it will not be used by GPU.
    -I2C currently supports: IR3567B (RX470, RX480, some RX5xx), up9505 (MSI RX5xx)
    -If you prefer to not touch fan settings it's possible to deactivate Fan section for each GPU. To do this press Ctrl + double click somewhere on the Fan box. It's saved per gpu_id, so GUI or commandline will not touch fan settings for such GPU.
    -To open Settings or SoftPowerPlayTable editor left click on top-left program icon, or right click on the titlebar.
    -To change "friendly name" first enable it in settings, than right click on the gpu list to open menu

    Current version: 0.2.9 (14.06.2020)
    Filename: OverdriveNTool.exe
    MD5: 9D0B0D3CE4B1479EE0AD3AB659691DC9
    SHA-1: 2A7D5ADD5ADE9DBC7B03AB6E28B9085D14579C2E

    or mirror: zippyshare

    Version 0.2.7 (for driver 17.7.2 -
    Filename: OverdriveNTool.exe
    MD5: 1DDC59F4C8B4675B528F127C5C5D8C84
    SHA-1: 94F97A930E12490E634FF09AB10BC5A4B8E8CADD
    download: dropbox

    0.2.9 (14.06.2020)
    -fixed: Application recognizes driver as not installed in 20.5.1 (or newer)
    -added profiles reordering
    0.2.8 (16.04.2019)
    -support for Fan Curve and Memory timing level introduced in 18.12.2 driver (Removed Fan Min, Fan Max, Fan Target Temp and Power Temp values)
    -added -wait command
    -added possibility to apply or reset all supported gpus at once by using Ctrl + Apply or Ctrl + Reset
    -fixed bug with GPUs and profiles duplication when use -showgui command
    -added support for Radeon VII
    0.2.7 (09.11.2018)
    -fixed: console messages may not be displayed on Windows 10
    -added possibility to open .reg files with SoftPowerPlayTable editor
    -added optional auto reset before apply
    -added -t and -showgui commands
    -added optional displaying an error when values are not as expected after apply
    -for errors with ErrorCode -1 on apply now current driver limits are displayed
    0.2.6 (16.05.2018)
    -added ini file backup feature
    -added an option to hide ADL_ERR_NOT_SUPPORTED errors
    -fixed: console messages may not be displayed on some systems
    -added -getcurrent and -ac command to apply values without using profile
    0.2.5 (13.02.2018)
    -r command now also resets I2C offset and LLC when I2C is enabled and supported
    -consoleonly command messages are now coloured
    -fixed: ini file may lose it's content on PC crash
    0.2.4 (18.01.2018)
    -fixed bug in QEMU PCI passthrough with showing only one GPU on multiGPU configs
    -updated error messages to give more info
    0.2.3 (14.12.2017)
    -added possibility to use * as gpu_id in commandline
    0.2.2 (23.11.2017)
    -added Friendly name and Registry key to gpu additional info
    -SoftPowerPlayTable editor can now automatically restart GPU when click "Save" or "Delete"
    0.2.1 (19.10.2017)
    -added SoftPowerPlayTable editor
    -commandline fix to avoid error messages when driver is not installed
    -added option to not include unsupported GPUs on the GPU list
    0.2.0 (02.10.2017)
    -added possibility to deactivate Fan section
    0.1.9 (25.09.2017)
    -added -consoleonly command in commandline
    -added I2C support for up9505
    -added Adapter index to gpu additional info
    -GPU displayed on startup changed to first supported rather than first one
    -Vega FE support in Pro mode
    -fixed ini bug with random values for I2C when new profile is created
    0.1.8 (08.09.2017)
    -fixed dpi bug introduced in 0.1.7
    -added I2C support for IR3567B
    0.1.7 (26.08.2017)
    -Now additional info about GPU is optional (system menu->settings)
    -changed Pstate disabling/enabling to single click
    -commandline support for more than 10 GPUs
    -Power Target now allows negative values
    0.1.6 (19.08.2017)
    -changed GPU list sorting to be like in other apps, for easier gpu recognition.
    0.1.5 (18.08.2017):
    -changed tab order for edit controls
    -fixed bug with not listing all GPU's on some configs
    0.1.4 (17.08.2017):
    - added possibility to disable/enable each P state.
    0.1.3 (12.08.2017):
    - added few more commands
    0.1.2 (08.08.2017):
    - added -c command in commandline
    0.1.1 (07.08.2017):
    - prevent using commandline on unsupported cards
    - fixed bug with showing only first GPU on multiGPU configs
    0.1 (06.08.2017):
    - initial release

    Older versions can be found here: dropbox
    Source code: dropbox

    Last edited by a moderator: Jun 14, 2020
    bobalazs, 5up41, drbobs and 14 others like this.
  2. OnnA

    OnnA Ancient Guru

    Likes Received:
    TiTan RTX Ampere UV
    THX for share This Great Tool -> is there a chance to have this for Fury? :D
  3. tede

    tede Guest

    This is for all cards supported by Api 7 OverdriveNext (maybe Vega too?), i won't make different app for fury because i don't have possibility to test it
  4. DerSchniffles

    DerSchniffles Ancient Guru

    Likes Received:
    PNY 4080
    Get in there OnnA, be the guinea pig for us! I would use this if it worked on the Fury ;)

  5. Rambo

    Rambo Master Guru

    Likes Received:
    RX 7800 XT
    Can't configure fans speed using your tool. Checked some values but seems that default profile is imperative.
  6. Virs

    Virs Guest

    I tried it on my 390 and it seems to be working, despite not being listed as one of the supported cards. The changes that I make with your tool are shown as being applied inside Radeon Settings and MSI Afterburner.

    I like your tool, mainly due to the ability to save a profile + the ability to change State 0. Radeon Settings doesn't let me do so, only State 1 through 7. By changing State 0 I don't need to use Clockblocker anymore, which worked well, but this seems like a more elegant solution to me (unless changing State 0 brings with it some risks I'm unaware of, a possibility).

    Either way, thank you for the tool!
  7. tede

    tede Guest

    What you mean, what exactly is not working, is there rpm difference when you use wattman? I just checked and fan speeds change when i change minimum rpm, maximum rpm and target temp values
    Maybe AMD added 3xx series to support OverdriveNext API which i didn't know about
    For Polaris P0 states always revert back to default, are you sure they are changed?
  8. Virs

    Virs Guest

    If Afterburner and Radeon Settings/Wattman are to be believed, the core clock stays to what I've set it to. If I change every State except 0, my core clock will downclock itself and spike up and down due to activity while I'm idle. And then when I'm playing a game with relatively low requirements it'll sometime be at what I've set it as (1040mhz) and sometime drop down to lower clocks.

    When I used OverdriveNTool to change every state, including State 0, to 1040mhz, my core clock remains stable at 1040mhz. Even if I'm idle on my desktop, it's at 1040mhz. In games, even after I close a game, it stays there. Afterburner doesn't show the "power limit" changing unless I restart AB, it shows the rest changing. Wattman shows the power limit change.

    I've tried recording a short video showing it, in it you can see the activity graphs of both AB and Wattman. In AB we see the small spikes and then the solid 1040mhz. In Wattman you can see the orange line, which goes from being low to being solid at a higher level. You can also see the states all being at the same level.

    I ended up cutting out the end part, where I launched a game, walked around, closed it and looked at the software again before using the "reset all" button to bring everything back to default. When I was doing it everything worked just fine, but the recording software (OBS) stopped recording properly after I opened the game. I think it's because I used the CPU to record and the CPU usage spiked when I opened the game. If it helps you any, I can do the same test later on but record with ReLive + the 'record desktop' option.

  9. tede

    tede Guest

    Nice :) May i ask why you need such high clocks and voltages in all states? It's power uneficient..
    And resetting doesn't reset Fan for you?
    Last edited by a moderator: Aug 7, 2017
  10. Virs

    Virs Guest

    The 'reset all' button does reset the fan for me, I can hear the fan ramping up or down as I use the tool.

    The reason I want the high clocks and voltages in all states is only for gaming, I bring them back to default values when I'm not gaming. There are some games where the power requirements can change quite quickly (depending on how much action is happening on screen or how I move the camera around) and when that happens, the card will by default try to change my clocks by itself to give me the power I need while still keeping my clocks low to save power. If the power requirements by the game change too quickly too often, it leads to stutters and I dislike that. I haven't been able to stop that from happening through the drivers themselves, but using your tool to change all of my states (and state 0) fixes that entirely. It'll be inefficient, but it completely fixes the problem and I don't mind being inefficient for as long as I'm gaming. Once I'm done with the game, I bring the values back to default and let the card downclock itself.

  11. wyattEarp

    wyattEarp Guest

    What drivers and OS are you using for the 390?
  12. Virs

    Virs Guest

    Windows 10 Anniversary Update. Drivers 17.7.2.
  13. mazaxaka

    mazaxaka Guest

    Thank you for good utility, but i have some problem. I cant set memory clock with lowest then 800mv, but i need 700 for some cards. Thanks
  14. kosho

    kosho Guest

    Great work ,, really we were looking for a tool like this since wattool has stopped developing his tool ,
    so i have an important note !!!
    GPU is NOT listed the same arrangement of MSI afterburner or new claymore version
    some for example I tested your tool in 2 rigs

    1st rig was like this
    calymore OverdriveNTool
    0 1
    1 0
    2 3
    3 2
    4 5
    5 4

    2nd rig was like this
    calymore OverdriveNTool
    0 5
    1 0
    2 1
    3 2
    4 3
    5 4

    As you see from the previous list there is no constant rule of listing GPUs

    Please fix it to be the same looks like clyamore listing

    Thanks for advance
  15. EarlVadim

    EarlVadim Guest

    Memory voltage must have 3 straps -> P0-P1-P2
    Otherwise it will not work.
    Last edited by a moderator: Aug 16, 2017

  16. tede

    tede Guest

    Hi kosho
    I will sort GPUs by bus number, hopefully it's the correct order. But i need your help with beta-testing, check your PM's later

    Don't you have P0-P1-P2? I've made this up to P7, that's why there is free space in the memory box
    Do you have set 0 in P2 Clock or Voltage?
    Last edited by a moderator: Aug 16, 2017
  17. EarlVadim

    EarlVadim Guest

    Last edited by a moderator: Aug 16, 2017
  18. tede

    tede Guest

    Yes i understood, can you answer me my questions?
  19. EarlVadim

    EarlVadim Guest

    I'm afraid I did not understand him a little. I need it easier. Sorry for my english.
  20. tede

    tede Guest

    OK, PM me, no need to do a mess here

Share This Page