diff --git a/src/gpu.cpp b/src/gpu.cpp index 48a6176..04ef909 100644 --- a/src/gpu.cpp +++ b/src/gpu.cpp @@ -120,14 +120,14 @@ auto getGpuMetrics(GpuMetricsHeader_t h, std::string path) { // clean abstraction of gpu_metrics + extra metrics from fs, works with rx7800xt gpu_t getGpu(GpuMetricsHeader_t header, std::string hw) { gpu_t gpu; - uint8_t hw_num = 4; + uint8_t hwmon = 4; // these are always read from fs - gpu.fan_speed = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/fan1_input")); - gpu.vcore = std::stod(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/in0_input")) / 1000.0; - gpu.power_cap = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/power1_cap", 6)); - gpu.power_max = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/power1_cap_max", 6)); - // gpu.fan_pwm = std::stoi(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/pwm1")); // not super useful + gpu.fan_speed = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/fan1_input")); + gpu.vcore = std::stod(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/in0_input")) / 1000.0; + gpu.power_cap = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/power1_cap", 6)); + gpu.power_max = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/power1_cap_max", 6)); + // gpu.fan_pwm = std::stoi(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/pwm1")); // not super useful gpu.vram_used = std::stoul(readFile(hw + "/mem_info_vram_used")); gpu.vram_total = std::stoul(readFile(hw + "/mem_info_vram_total")); @@ -148,13 +148,24 @@ gpu_t getGpu(GpuMetricsHeader_t header, std::string hw) { gpu.mem_vrm_temp = metrics.temperature_vrmem; gpu.power_avg = metrics.average_socket_power; } else { +<<<<<<< HEAD gpu.core_clock = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/freq1_input", 6)); gpu.mem_clock = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/freq2_input", 6)); gpu.vcore = std::stod(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/in0_input")) / 1000.0; gpu.power_avg = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/power1_input", 6)); gpu.edge_temp = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hw_num) + "/temp1_input", 3)); +======= + gpu.core_clock = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/freq1_input", 6)); + gpu.mem_clock = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/freq2_input", 6)); + gpu.vcore = std::stod(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/in0_input")) / 1000.0; + gpu.power_avg = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/power1_input", 6)); + gpu.edge_temp = std::stol(readFile(hw + "/hwmon/hwmon" + std::to_string(hwmon)+ "/temp1_input", 3)); +>>>>>>> 23bbb306a9b623ceecc48a6e3124ab7c9d77d849 gpu.core_usage = std::stoi(readFile(hw + "/gpu_busy_percent")); } + if(gpu.fan_speed > 9999) + gpu.fan_speed = 9999; + return gpu; }