diff --git a/amd.cpp b/amd.cpp index 14eb5aa..d08626c 100644 --- a/amd.cpp +++ b/amd.cpp @@ -241,6 +241,12 @@ QString amd::applySettings(int GPUIndex) if (powerLimSlider->value() != latestpowerLimSlider) { cmd.append("echo '" + QString::number(powerLimSlider->value() * 1000000) +"' > " + GPUList[GPUIndex].hwmonpath + "/power1_cap & "); } + // Apply voltage/core clock (highest pstate) + if ((coreClockSlider->value() != GPUList[GPUIndex].coreclocks.last()) || (voltageSlider->value() != GPUList[GPUIndex].corevolts.last())) { + QString volt = QString::number(voltageSlider->value()); + QString freq = QString::number(coreClockSlider->value()); + cmd.append("echo 'm "+ QString::number(GPUList[GPUIndex].corevolts.size()-1) + " "+ freq +" "+ volt +"' "+"> /sys/class/drm/card"+QString::number(GPUList[GPUIndex].fsindex)+"/device/pp_od_clk_voltage & "); + } cmd.append("\""); proc.start(cmd); @@ -260,13 +266,16 @@ QString amd::applySettings(int GPUIndex) // Power limit if (powerLimSlider->value() != latestpowerLimSlider) { queryGPUPowerLimit(GPUIndex); - if (powerLimSlider->value() * 1000000 != static_cast(GPUList[GPUIndex].powerLim)) { + if (powerLimSlider->value() != static_cast(GPUList[GPUIndex].powerLim)) { hadErrors = true; errStr.append("Power Limit, "); } else { latestpowerLimSlider = powerLimSlider->value(); } } + // Core clock/voltage + if ((coreClockSlider->value() != GPUList[GPUIndex].coreclocks.last()) || (voltageSlider->value() != GPUList[GPUIndex].corevolts.last())) { + } if (hadErrors) { errStr.chop(2);