diff --git a/src/gpu.cpp b/src/gpu.cpp index 451be192..9a8c8f67 100644 --- a/src/gpu.cpp +++ b/src/gpu.cpp @@ -46,6 +46,7 @@ void getNvidiaGpuInfo(const struct overlay_params& params){ gpu_info.CoreClock = nvidiaCoreClock; gpu_info.MemClock = nvidiaMemClock; gpu_info.powerUsage = nvidiaPowerUsage / 1000; + gpu_info.fan_rpm = false; gpu_info.memoryTotal = nvidiaMemory.total / (1024.f * 1024.f * 1024.f); gpu_info.fan_speed = nvidiaFanSpeed; if (params.enabled[OVERLAY_PARAM_ENABLED_throttling_status]){ @@ -55,8 +56,10 @@ void getNvidiaGpuInfo(const struct overlay_params& params){ } #ifdef HAVE_XNVCTRL static bool nvctrl_available = checkXNVCtrl(); - if (nvctrl_available) + if (nvctrl_available) { + gpu_info.fan_rpm = true; gpu_info.fan_speed = getNvctrlFanSpeed(); + } #endif return; @@ -72,6 +75,7 @@ void getNvidiaGpuInfo(const struct overlay_params& params){ gpu_info.MemClock = nvctrl_info.MemClock; gpu_info.powerUsage = 0; gpu_info.memoryTotal = nvctrl_info.memoryTotal; + gpu_info.fan_rpm = true; gpu_info.fan_speed = nvctrl_info.fan_speed; return; } @@ -122,8 +126,9 @@ void getAmdGpuInfo(){ if (fscanf(amdgpu.fan, "%" PRId64, &value) != 1) value = 0; gpu_info.fan_speed = value; + gpu_info.fan_rpm = true; } - + if (amdgpu.vram_total) { rewind(amdgpu.vram_total); fflush(amdgpu.vram_total); diff --git a/src/gpu.h b/src/gpu.h index 58753032..c27a3662 100644 --- a/src/gpu.h +++ b/src/gpu.h @@ -44,6 +44,7 @@ struct gpuInfo{ float gtt_used; int fan_speed; int voltage; + bool fan_rpm; }; extern struct gpuInfo gpu_info; diff --git a/src/hud_elements.cpp b/src/hud_elements.cpp index d24b3607..c3ae6b10 100644 --- a/src/hud_elements.cpp +++ b/src/hud_elements.cpp @@ -252,16 +252,14 @@ void HudElements::gpu_stats(){ ImguiNextColumnOrNewRow(); right_aligned_text(text_color, HUDElements.ralign_width, "%i", gpu_info.fan_speed); ImGui::SameLine(0, 1.0f); - // if Nvidia GPU - if (HUDElements.vendorID == 0x10de) { + if (gpu_info.fan_rpm) { + ImGui::PushFont(HUDElements.sw_stats->font1); + HUDElements.TextColored(HUDElements.colors.text, "RPM"); + } else if (HUDElements.vendorID == 0x1002) { HUDElements.TextColored(HUDElements.colors.text, "%%"); ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::SameLine(0, 1.0f); 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(); }