diff --git a/amd.cpp b/amd.cpp index d08626c..2f31fc3 100644 --- a/amd.cpp +++ b/amd.cpp @@ -275,6 +275,14 @@ QString amd::applySettings(int GPUIndex) } // Core clock/voltage if ((coreClockSlider->value() != GPUList[GPUIndex].coreclocks.last()) || (voltageSlider->value() != GPUList[GPUIndex].corevolts.last())) { + queryPstates(); + if ((coreClockSlider->value() != GPUList[GPUIndex].coreclocks.last()) || (voltageSlider->value() != GPUList[GPUIndex].corevolts.last())) { + hadErrors = true; + errStr.append("Core pstate, "); + } else { + latestVoltageSlider = voltageSlider->value(); + latestCoreClkSlider = coreClockSlider->value(); + } } if (hadErrors) { @@ -305,9 +313,12 @@ void amd::queryGPUFeatures() int breakcount = 0; QString path; QString line; + + queryPstates(); + for (int i=0; i /sys/class/drm/card" + QString::number(types->GPUList[gpuidx].fsindex) + "/device_pp_od_clk_voltage\""); proc.start(cmd); proc.waitForFinished(-1); if (proc.exitCode() != 0) { diff --git a/gputypes.h b/gputypes.h index d30b659..2f2eea4 100644 --- a/gputypes.h +++ b/gputypes.h @@ -282,6 +282,7 @@ public slots: bool assignGPUMemClockOffset(int GPUIndex, int targetValue); bool assignGPUVoltageOffset(int GPUIndex, int targetValue); bool assignGPUPowerLimit(int GPUIndex, uint targetValue); + void queryPstates(); private slots: }; #endif