Use at your own risk! Input values are not checked for compliance with WattMan limits. The line and I2C address are fixed.
(almost) everything WattMan can do
small and simple
I dont check input values against the limits that the API provides. The API then limits the values or the call fails and settings dont change.
GPU clock and voltage: works similar to WattMan. Clocks are not restricted to 5 MHz increments, but voltage is limited to 6.25 mV steps (rounding mode is up, so 976 mV will result in 981.25 mV).
Memory clock and voltage: works similar to WattMan. The voltage is not the actual memory voltage (which is fixed to about 1.5 V or needs a hardmod). The voltage controllers second loop is not used, so it is questionable, whether the memory controller has an own dynamic voltage plane. My guess is that the voltage set here simply is a lower limit for the core voltage. If you overclock the memory, always check for memory errors (can be done with HWiNFO)
Fan and Power settings: nothing special here. Minimum fan rpm is not limited, I can set values below WattMan’s limit of 1040 rpm. Minimum rpm is not used directly. My estimate is that values below 2200 are scaled by 2/3. So 2500 results in 2200 * 2/3 + 300 = 1760 (see screenshot), while 1800 will give 1800 * 2/3 = 1200.
Standard monitoring: these values should be identical to the values displayed in WattMan and there is (almost) no performance impact caused by monitoring.
I2C access: is currently only working for the IR3567B controller on line 4 address 8 on RX470/RX480 cards. Access is synchronized with other tools like GPU-Z or HWiNFO, which can sometimes result in missing readings. I2C access has a large performance impact and causes stuttering (even for dragging a window on the desktop). Changes to I2C settings are not persistent. They will revert to defaults after the VRM is powered down.
VRM monitoring: is disabled by default. Reading the values is not atomic, so VID and VOUT are not always in sync. VDDC resolution is only 7.8 mV.
Load Line Calibration: eliminates voltage drop (on my card i get VOUT = VID +- 1mV). Not actually very useful.
Phase gain: The reference RX 480 has the first three VRM phases connected to the 6-pin connector and the remaining three phases connected to the slot. After reviews measured power draw above 80 W from the slots, AMD implemented a fix that shifts load the 6-pin connector. The default value for this is DDD000 (Hex). The maximum possible shift would be FFF000. Equal load distribution (000000) slightly increases the VRM efficiency. I get about 3°C lower VRM temps with 000000, power savings might be in the 2-3W range. On non-reference cards all/most phases are probably connected to the 8-pin, so changing this setting is pointless.
Current scale: will scale the current reported by the VRM. On the reference RX480 the default value is 60 (hex). If you set it to 20 you will see GPU-Z reporting about half the power draw. This will double the available power, before you reach the power target. But other stuff will also only see half the current. Dont expect over current protection to work with this setting. The encoding of this value is unknown and non-reference cards use different values. If you want to bypass the power limit, it is probably safer to use EMBD or a custom bios (der8auer’s unlocked air bios for reference cards is signed by AMD).
Voltage offset: is available from -300mV to +300mV (not tested over the whole range). The input is decimal and gets multiplied by 6.25mV. So the valid range is -48 to 48.
Profiles can be given as commandline arguments to WattTool or loaded and saved from the GUI.
Each card needs its own profile. You can add multiple profiles as commandline arguments.
Adapter index is the number from the dropdown listbox.
There is a NoGUI option that closes WattTool when set to 1 after all profiles are loaded and does not start the GUI.
Profile sections are only active when mode is set to Manual. Mode=Default restores default settings for this section.