From f11a49ae8baa65ce30911c81fa281fe5a170a6f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hor=C3=A1=C4=8Dek?= Date: Sun, 13 Dec 2020 11:07:17 +0100 Subject: [PATCH] Add swap --- README.md | 1 + bin/MangoHud.conf | 3 ++- src/hud_elements.cpp | 9 +++++++++ src/hud_elements.h | 1 + src/memory.cpp | 5 ++++- src/memory.h | 2 +- src/overlay.cpp | 2 +- src/overlay_params.cpp | 1 + src/overlay_params.h | 1 + 9 files changed, 21 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f2b756b5..e44a2fcc 100644 --- a/README.md +++ b/README.md @@ -138,6 +138,7 @@ Parameters that are enabled by default have to be explicitly disabled. These (cu | `core_load` | Displays load & frequency per core | | `gpu_core_clock`
`gpu_mem_clock`| Displays GPU core/memory frequency | | `ram`
`vram` | Displays system RAM/VRAM usage | +| `swap` | Displays swap space usage next to system RAM usage | | `full` | Enables most of the toggleable parameters (currently excludes `histogram`) | | `font_size=` | Customizeable font size (default=24) | | `font_size_text=` | Customizeable font size for other text like media metadata (default=24) | diff --git a/bin/MangoHud.conf b/bin/MangoHud.conf index 8f2af801..05c40171 100644 --- a/bin/MangoHud.conf +++ b/bin/MangoHud.conf @@ -104,8 +104,9 @@ position=top-left # io_write # io_stats -### Display system ram / vram usage +### Display system ram / swap space / vram usage # ram +# swap # vram ### Display Wine version diff --git a/src/hud_elements.cpp b/src/hud_elements.cpp index b8d4b685..7d5974f0 100644 --- a/src/hud_elements.cpp +++ b/src/hud_elements.cpp @@ -329,6 +329,15 @@ void HudElements::ram(){ ImGui::Text("GiB"); ImGui::PopFont(); } + + if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_ram] && HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_swap]){ + ImGui::TableNextCell(); + right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", swapused); + ImGui::SameLine(0,1.0f); + ImGui::PushFont(HUDElements.sw_stats->font1); + ImGui::Text("GiB"); + ImGui::PopFont(); + } #endif } diff --git a/src/hud_elements.h b/src/hud_elements.h index 93f39a8b..48f6ccc8 100644 --- a/src/hud_elements.h +++ b/src/hud_elements.h @@ -53,6 +53,7 @@ class HudElements{ gpu, vram, ram, + swap, engine, io, frametime, diff --git a/src/memory.cpp b/src/memory.cpp index d4b73b48..63b0c5d9 100644 --- a/src/memory.cpp +++ b/src/memory.cpp @@ -6,7 +6,7 @@ #include struct memory_information mem_info; -float memused, memmax; +float memused, memmax, swapused, swapmax; FILE *open_file(const char *file, int *reported) { FILE *fp = nullptr; @@ -95,5 +95,8 @@ void update_meminfo(void) { memused = (float(mem_info.memmax) - float(mem_info.memeasyfree)) / (1024 * 1024); memmax = float(mem_info.memmax) / (1024 * 1024); + swapused = (float(mem_info.swapmax) - float(mem_info.swapfree)) / (1024 * 1024); + swapmax = float(mem_info.swapmax) / (1024 * 1024); + fclose(meminfo_fp); } diff --git a/src/memory.h b/src/memory.h index 8afee519..469c14e8 100644 --- a/src/memory.h +++ b/src/memory.h @@ -5,7 +5,7 @@ #include #include -extern float memused, memmax; +extern float memused, memmax, swapused, swapmax; struct memory_information { /* memory information in kilobytes */ diff --git a/src/overlay.cpp b/src/overlay.cpp index 622a9349..c171c000 100644 --- a/src/overlay.cpp +++ b/src/overlay.cpp @@ -44,7 +44,7 @@ void update_hw_info(struct swapchain_stats& sw_stats, struct overlay_params& par // get ram usage/max #ifdef __gnu_linux__ - if (params.enabled[OVERLAY_PARAM_ENABLED_ram] || logger->is_active()) + if (params.enabled[OVERLAY_PARAM_ENABLED_ram] || params.enabled[OVERLAY_PARAM_ENABLED_swap] || logger->is_active()) update_meminfo(); if (params.enabled[OVERLAY_PARAM_ENABLED_io_read] || params.enabled[OVERLAY_PARAM_ENABLED_io_write]) getIoStats(&sw_stats.io); diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index 5e0229a7..91c05964 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -533,6 +533,7 @@ parse_overlay_config(struct overlay_params *params, params->enabled[OVERLAY_PARAM_ENABLED_cpu_stats] = true; params->enabled[OVERLAY_PARAM_ENABLED_gpu_stats] = true; params->enabled[OVERLAY_PARAM_ENABLED_ram] = false; + params->enabled[OVERLAY_PARAM_ENABLED_swap] = false; params->enabled[OVERLAY_PARAM_ENABLED_vram] = false; params->enabled[OVERLAY_PARAM_ENABLED_read_cfg] = false; params->enabled[OVERLAY_PARAM_ENABLED_io_read] = false; diff --git a/src/overlay_params.h b/src/overlay_params.h index f378452b..0bd4e23c 100644 --- a/src/overlay_params.h +++ b/src/overlay_params.h @@ -34,6 +34,7 @@ typedef unsigned long KeySym; OVERLAY_PARAM_BOOL(cpu_stats) \ OVERLAY_PARAM_BOOL(gpu_stats) \ OVERLAY_PARAM_BOOL(ram) \ + OVERLAY_PARAM_BOOL(swap) \ OVERLAY_PARAM_BOOL(vram) \ OVERLAY_PARAM_BOOL(time) \ OVERLAY_PARAM_BOOL(full) \