mangoapp: don't assume APU for temps

pull/710/head
FlightlessMango 2 years ago
parent 8b801e8435
commit 1940a83566

@ -11,6 +11,7 @@ void amdgpu_get_metrics()
std::ifstream in(metrics_path, std::ios_base::in | std::ios_base::binary);
in.read((char*)&header, sizeof(header));
if (header.format_revision == 1){
cpuStats.cpu_type = "CPU";
// Desktop GPUs
struct gpu_metrics_v1_3 amdgpu_metrics;
in.clear();
@ -23,6 +24,7 @@ void amdgpu_get_metrics()
gpu_info.MemClock = amdgpu_metrics.current_uclk;
} else if (header.format_revision == 2){
// APUs
cpuStats.cpu_type = "APU";
struct gpu_metrics_v2_2 amdgpu_metrics;
in.clear();
in.seekg(0);

@ -248,21 +248,22 @@ bool CPUStats::UpdateCoreMhz() {
}
bool CPUStats::UpdateCpuTemp() {
#ifdef MANGOAPP
m_cpuDataTotal.temp = gpu_info.apu_cpu_temp;
#else
if (!m_cpuTempFile)
return false;
if (cpu_type == "APU"){
fprintf(stderr, "%s\n", "getting gpu_metrics cpu temps");
m_cpuDataTotal.temp = gpu_info.apu_cpu_temp;
return true;
} else {
if (!m_cpuTempFile)
return false;
int temp = 0;
rewind(m_cpuTempFile);
fflush(m_cpuTempFile);
bool ret = (fscanf(m_cpuTempFile, "%d", &temp) == 1);
m_cpuDataTotal.temp = temp / 1000;
int temp = 0;
rewind(m_cpuTempFile);
fflush(m_cpuTempFile);
bool ret = (fscanf(m_cpuTempFile, "%d", &temp) == 1);
m_cpuDataTotal.temp = temp / 1000;
return ret;
#endif
return true;
return ret;
}
}
static bool get_cpu_power_k10temp(CPUPowerData* cpuPowerData, float& power) {
@ -447,7 +448,6 @@ bool CPUStats::GetCpuFile() {
path.clear();
}
}
#ifndef MANGOAPP
if (path.empty() || (!file_exists(input) && !find_fallback_temp_input(path, input))) {
SPDLOG_ERROR("Could not find cpu temp sensor location");
return false;
@ -455,7 +455,6 @@ bool CPUStats::GetCpuFile() {
SPDLOG_DEBUG("hwmon: using input: {}", input);
m_cpuTempFile = fopen(input.c_str(), "r");
}
#endif
return true;
}

@ -6,6 +6,7 @@
#include <cstdint>
#include <cstdio>
#include <memory>
#include <string>
#include "timing.hpp"
@ -140,6 +141,7 @@ public:
const CPUData& GetCPUDataTotal() const {
return m_cpuDataTotal;
}
std::string cpu_type = "CPU";
private:
unsigned long long int m_boottime = 0;
std::vector<CPUData> m_cpuData;

Loading…
Cancel
Save