Fix amdgpu watt and make it more granular

mangoapp-fsr
FlightlessMango 2 years ago
parent a76f2a9677
commit d71dd74685

@ -29,10 +29,10 @@ void amdgpu_get_metrics()
in.read((char*)&amdgpu_metrics, sizeof(amdgpu_metrics));
gpu_info.load = amdgpu_metrics.average_gfx_activity;
gpu_info.CoreClock = amdgpu_metrics.current_gfxclk;
gpu_info.powerUsage = amdgpu_metrics.average_gfx_power / 100;
gpu_info.powerUsage = amdgpu_metrics.average_gfx_power / 1000.f;
gpu_info.temp = amdgpu_metrics.temperature_gfx / 100;
gpu_info.MemClock = amdgpu_metrics.current_uclk;
gpu_info.apu_cpu_power = amdgpu_metrics.average_cpu_power;
gpu_info.apu_cpu_power = amdgpu_metrics.average_cpu_power / 1000.f;
int cpu_temp = 0;
for (int i = 0; i < cpuStats.GetCPUData().size() / 2; i++)
if (amdgpu_metrics.temperature_core[i] > cpu_temp)

@ -264,7 +264,7 @@ bool CPUStats::UpdateCpuTemp() {
return true;
}
static bool get_cpu_power_k10temp(CPUPowerData* cpuPowerData, int& power) {
static bool get_cpu_power_k10temp(CPUPowerData* cpuPowerData, float& power) {
CPUPowerData_k10temp* powerData_k10temp = (CPUPowerData_k10temp*)cpuPowerData;
if (!powerData_k10temp->coreVoltageFile || !powerData_k10temp->coreCurrentFile || !powerData_k10temp->socVoltageFile || !powerData_k10temp->socCurrentFile)
@ -297,7 +297,7 @@ static bool get_cpu_power_k10temp(CPUPowerData* cpuPowerData, int& power) {
return true;
}
static bool get_cpu_power_zenpower(CPUPowerData* cpuPowerData, int& power) {
static bool get_cpu_power_zenpower(CPUPowerData* cpuPowerData, float& power) {
CPUPowerData_zenpower* powerData_zenpower = (CPUPowerData_zenpower*)cpuPowerData;
if (!powerData_zenpower->corePowerFile || !powerData_zenpower->socPowerFile)
@ -321,7 +321,7 @@ static bool get_cpu_power_zenpower(CPUPowerData* cpuPowerData, int& power) {
return true;
}
static bool get_cpu_power_rapl(CPUPowerData* cpuPowerData, int& power) {
static bool get_cpu_power_rapl(CPUPowerData* cpuPowerData, float& power) {
CPUPowerData_rapl* powerData_rapl = (CPUPowerData_rapl*)cpuPowerData;
if (!powerData_rapl->energyCounterFile)
@ -348,8 +348,8 @@ static bool get_cpu_power_rapl(CPUPowerData* cpuPowerData, int& power) {
return true;
}
static bool get_cpu_power_amdgpu(int& power) {
power = gpu_info.apu_cpu_power / 1000;
static bool get_cpu_power_amdgpu(float& power) {
power = gpu_info.apu_cpu_power;
return true;
}
@ -357,7 +357,7 @@ bool CPUStats::UpdateCpuPower() {
if(!m_cpuPowerData)
return false;
int power = 0;
float power = 0;
switch(m_cpuPowerData->source) {
case CPU_POWER_K10TEMP:

@ -39,7 +39,7 @@ typedef struct CPUData_ {
int mhz;
int temp;
int cpu_mhz;
int power;
float power;
} CPUData;
enum {

@ -25,8 +25,8 @@ struct gpuInfo{
float memoryTotal;
int MemClock;
int CoreClock;
int powerUsage;
int apu_cpu_power;
float powerUsage;
float apu_cpu_power;
int apu_cpu_temp;
};

@ -181,7 +181,11 @@ void HudElements::gpu_stats(){
}
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_gpu_power]) {
ImGui::TableNextColumn();
right_aligned_text(text_color, HUDElements.ralign_width, "%i", gpu_info.powerUsage);
#ifdef MANGOAPP
right_aligned_text(text_color, HUDElements.ralign_width, "%.1f", gpu_info.powerUsage);
#else
right_aligned_text(text_color, HUDElements.ralign_width, "%.0f", gpu_info.powerUsage);
#endif
ImGui::SameLine(0, 1.0f);
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::Text("W");
@ -242,7 +246,11 @@ void HudElements::cpu_stats(){
}
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_cpu_power]){
ImGui::TableNextColumn();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%i", cpuStats.GetCPUDataTotal().power);
#ifdef MANGOAPP
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", cpuStats.GetCPUDataTotal().power);
#else
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.0f", cpuStats.GetCPUDataTotal().power);
#endif
ImGui::SameLine(0, 1.0f);
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::Text("W");

Loading…
Cancel
Save