gpu_fan: rewrite rpm/% indication

pull/1093/head
FlightlessMango 3 months ago
parent ab3b22ec12
commit 45671161c4

@ -46,6 +46,7 @@ void getNvidiaGpuInfo(const struct overlay_params& params){
gpu_info.CoreClock = nvidiaCoreClock; gpu_info.CoreClock = nvidiaCoreClock;
gpu_info.MemClock = nvidiaMemClock; gpu_info.MemClock = nvidiaMemClock;
gpu_info.powerUsage = nvidiaPowerUsage / 1000; gpu_info.powerUsage = nvidiaPowerUsage / 1000;
gpu_info.fan_rpm = false;
gpu_info.memoryTotal = nvidiaMemory.total / (1024.f * 1024.f * 1024.f); gpu_info.memoryTotal = nvidiaMemory.total / (1024.f * 1024.f * 1024.f);
gpu_info.fan_speed = nvidiaFanSpeed; gpu_info.fan_speed = nvidiaFanSpeed;
if (params.enabled[OVERLAY_PARAM_ENABLED_throttling_status]){ if (params.enabled[OVERLAY_PARAM_ENABLED_throttling_status]){
@ -55,8 +56,10 @@ void getNvidiaGpuInfo(const struct overlay_params& params){
} }
#ifdef HAVE_XNVCTRL #ifdef HAVE_XNVCTRL
static bool nvctrl_available = checkXNVCtrl(); static bool nvctrl_available = checkXNVCtrl();
if (nvctrl_available) if (nvctrl_available) {
gpu_info.fan_rpm = true;
gpu_info.fan_speed = getNvctrlFanSpeed(); gpu_info.fan_speed = getNvctrlFanSpeed();
}
#endif #endif
return; return;
@ -72,6 +75,7 @@ void getNvidiaGpuInfo(const struct overlay_params& params){
gpu_info.MemClock = nvctrl_info.MemClock; gpu_info.MemClock = nvctrl_info.MemClock;
gpu_info.powerUsage = 0; gpu_info.powerUsage = 0;
gpu_info.memoryTotal = nvctrl_info.memoryTotal; gpu_info.memoryTotal = nvctrl_info.memoryTotal;
gpu_info.fan_rpm = true;
gpu_info.fan_speed = nvctrl_info.fan_speed; gpu_info.fan_speed = nvctrl_info.fan_speed;
return; return;
} }
@ -122,8 +126,9 @@ void getAmdGpuInfo(){
if (fscanf(amdgpu.fan, "%" PRId64, &value) != 1) if (fscanf(amdgpu.fan, "%" PRId64, &value) != 1)
value = 0; value = 0;
gpu_info.fan_speed = value; gpu_info.fan_speed = value;
gpu_info.fan_rpm = true;
} }
if (amdgpu.vram_total) { if (amdgpu.vram_total) {
rewind(amdgpu.vram_total); rewind(amdgpu.vram_total);
fflush(amdgpu.vram_total); fflush(amdgpu.vram_total);

@ -44,6 +44,7 @@ struct gpuInfo{
float gtt_used; float gtt_used;
int fan_speed; int fan_speed;
int voltage; int voltage;
bool fan_rpm;
}; };
extern struct gpuInfo gpu_info; extern struct gpuInfo gpu_info;

@ -252,16 +252,14 @@ void HudElements::gpu_stats(){
ImguiNextColumnOrNewRow(); ImguiNextColumnOrNewRow();
right_aligned_text(text_color, HUDElements.ralign_width, "%i", gpu_info.fan_speed); right_aligned_text(text_color, HUDElements.ralign_width, "%i", gpu_info.fan_speed);
ImGui::SameLine(0, 1.0f); ImGui::SameLine(0, 1.0f);
// if Nvidia GPU if (gpu_info.fan_rpm) {
if (HUDElements.vendorID == 0x10de) { ImGui::PushFont(HUDElements.sw_stats->font1);
HUDElements.TextColored(HUDElements.colors.text, "RPM");
} else if (HUDElements.vendorID == 0x1002) {
HUDElements.TextColored(HUDElements.colors.text, "%%"); HUDElements.TextColored(HUDElements.colors.text, "%%");
ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::SameLine(0, 1.0f); ImGui::SameLine(0, 1.0f);
HUDElements.TextColored(HUDElements.colors.text, "FAN"); HUDElements.TextColored(HUDElements.colors.text, "FAN");
// if AMD GPU
} else if (HUDElements.vendorID == 0x1002) {
ImGui::PushFont(HUDElements.sw_stats->font1);
HUDElements.TextColored(HUDElements.colors.text, "RPM");
} }
ImGui::PopFont(); ImGui::PopFont();
} }

Loading…
Cancel
Save