{"id":13437879,"url":"https://github.com/flightlessmango/MangoHud","last_synced_at":"2025-03-19T18:31:04.162Z","repository":{"id":37237742,"uuid":"236648333","full_name":"flightlessmango/MangoHud","owner":"flightlessmango","description":"A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb","archived":false,"fork":false,"pushed_at":"2024-04-13T19:35:43.000Z","size":45231,"stargazers_count":5825,"open_issues_count":140,"forks_count":243,"subscribers_count":55,"default_branch":"master","last_synced_at":"2024-04-13T20:52:03.780Z","etag":null,"topics":["benchmarking","hud","linux","monitoring","opengl","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flightlessmango.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"github":null,"patreon":"FlightlessMango","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://www.paypal.me/flightlessmango"}},"created_at":"2020-01-28T03:18:11.000Z","updated_at":"2024-04-26T04:39:55.695Z","dependencies_parsed_at":"2024-01-03T06:42:49.799Z","dependency_job_id":"b5819a2b-853a-4a0d-b54a-8ea609576037","html_url":"https://github.com/flightlessmango/MangoHud","commit_stats":{"total_commits":1798,"total_committers":105,"mean_commits":"17.123809523809523","dds":0.6017797552836486,"last_synced_commit":"d30cf162c15bfabfddd456ceb48a6d3848fa7098"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightlessmango%2FMangoHud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightlessmango%2FMangoHud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightlessmango%2FMangoHud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flightlessmango%2FMangoHud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flightlessmango","download_url":"https://codeload.github.com/flightlessmango/MangoHud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221729756,"owners_count":16871098,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["benchmarking","hud","linux","monitoring","opengl","vulkan"],"created_at":"2024-07-31T03:01:00.906Z","updated_at":"2025-03-19T18:31:04.152Z","avatar_url":"https://github.com/flightlessmango.png","language":"C","readme":"# MangoHud\n\nA Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.\n\n![Example gif showing a standard performance readout with frametimes](assets/overlay_example.gif)\n\n---\n\n- [MangoHud](#mangohud)\n  - [Installation - Build From Source](#installation---build-from-source)\n    - [Dependencies](#dependencies)\n    - [Building with build script](#building-with-build-script)\n  - [Installation - Pre-packaged Binaries](#installation---pre-packaged-binaries)\n    - [GitHub releases](#github-releases)\n    - [Arch-based distributions](#arch-based-distributions)\n    - [Debian, Ubuntu](#debian-ubuntu)\n    - [Fedora](#fedora)\n    - [Solus](#solus)\n    - [openSUSE](#opensuse)\n    - [Flatpak](#flatpak)\n  - [Normal usage](#normal-usage)\n  - [OpenGL](#opengl)\n  - [Hud configuration](#hud-configuration)\n    - [Environment Variables: **`MANGOHUD_CONFIG`**, **`MANGOHUD_CONFIGFILE`**, and **`MANGOHUD_PRESETSFILE`**](#environment-variables)\n  - [Vsync](#vsync)\n    - [OpenGL Vsync](#opengl-vsync)\n    - [Vulkan Vsync](#vulkan-vsync)\n  - [Keybindings](#keybindings)\n  - [Workarounds](#workarounds)\n  - [FPS logging](#fps-logging)\n    - [Online visualization: FlightlessMango.com](#online-visualization-flightlessmangocom)\n    - [Local visualization: `mangoplot`](#local-visualization-mangoplot)\n  - [Metrics support by GPU vendor](#metrics-support-by-gpu-vendor)\n\n## Installation - Build From Source\n\n---\n\nIf you wish to compile MangoHud to keep up to date with any changes - first clone this repository and cd into it:\n\n```\ngit clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git\ncd MangoHud\n```\n\nUsing `meson` to install \"manually\":\n\n```\nmeson build\nninja -C build install\n```\n\nBy default, meson should install MangoHud to `/usr/local`. Specify install prefix with `--prefix=/usr` if desired.\nAdd `-Dappend_libdir_mangohud=false` option to meson to not append `mangohud` to libdir if desired (e.g. /usr/local/lib/mangohud).\n\nTo install 32-bit build on 64-bit distro, specify proper `libdir`: `lib32` for Arch, `lib/i386-linux-gnu` on Debian-based distros. RPM-based distros usually install 32-bit libraries to `/usr/lib` and 64-bit to `/usr/lib64`.\nYou may have to change `PKG_CONFIG_PATH` to point to correct folders for your distro.\n\n```\nCC=\"gcc -m32\" \\\nCXX=\"g++ -m32\" \\\nPKG_CONFIG_PATH=\"/usr/lib32/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib/pkgconfig\" \\\nmeson build32 --libdir lib32\nninja -C build32 install\n```\n\n### Dependencies\n\nInstall necessary development packages.\n\n- gcc, g++\n- or gcc-multilib, g++-multilib for 32-bit support\n- meson \u003e=0.54\n- ninja (ninja-build)\n- glslang\n- libGL/libEGL (libglvnd, mesa-common-dev, mesa-libGL-devel etc)\n- X11 (libx11-dev)\n- XNVCtrl (libxnvctrl-dev), optional, use `-Dwith_xnvctrl=disabled` option with `meson` to disable\n- D-Bus (libdbus-1-dev), optional, use `-Dwith_dbus=disabled` option with `meson` to disable\n- wayland-client\n- xcbcommon\n\nPython 3 libraries:\n\n- Mako (python3-mako or install with `pip`)\n\nIf distro's packaged `meson` is too old and gives build errors, install newer version with `pip` (`python3-pip`).\n\n### Meson options\n\n| Option        | Default | Description\n| --------      | ------- | -\n| with_nvml     | enabled    |Required for NVIDIA GPU metrics on wayland\n| with_xnvctrl  | enabled    |Required for NVIDIA GPU metrics on older GPUs\n| with_x11      | enabled    |Required for keybinds on x11\n| with_wayland  | enabled    |Required for keybinds on wayland\n| with_dbus     | enabled    |Required for using the media features\n| mangoapp      | false      |Includes mangoapp\n| mangohudctl   | false      |Include mangohudctl\n| tests         | auto       |Includes tests\n| mangoplot     | true       |Includes mangoplot\n\n\n### Building with build script\n\nYou can also use `build.sh` script to do some things automatically like install dependencies, if distro is supported but it usually assumes you are running on x86_64 architecture.\n\nTo just build it, execute:\n\n```\n./build.sh build\n```\n\nYou can also pass arguments to meson:\n\n```\n./build.sh build -Dwith_xnvctrl=disabled\n```\n\nResulting files will be install to `./build/release` folder.\n\nIf you have compiled MangoHud from source, to install it, execute:\n\n```\n./build.sh install\n```\n\nYou can then subsequently uninstall MangoHud via the following command\n\n```\n./build.sh uninstall\n```\n\nTo tar up the resulting binaries into a package and create a release tar with installer script, execute:\n\n```\n./build.sh package release\n```\n\nor combine the commands, although `package` should also call `build` if it doesn't find the built libs:\n\n```\n./build.sh build package release\n```\n\nIf you have built MangoHud before and suddenly it fails, you can try cleaning the `build` folder, execute:\n\n```\n./build.sh clean\n```\n\nCurrently it just does `rm -fr build` and clears subprojects.\n\n__NOTE: If you are running an Ubuntu-based, Arch-based, Fedora-based, or openSUSE-based distro, the build script will automatically detect and prompt you to install missing build dependencies. If you run into any issues with this please report them!__\n\n## Installation - Pre-packaged Binaries\n\n---\n\n### GitHub releases\n\nIf you do not wish to compile anything, simply download the file under [Releases](https://github.com/flightlessmango/MangoHud/releases), extract it, and from within the extracted folder in terminal, execute:\n\n```\n./mangohud-setup.sh install\n```\n\n### Arch-based distributions\n\nIf you are using an Arch-based distribution, install [`mangohud`](https://archlinux.org/packages/extra/x86_64/mangohud/) and [`lib32-mangohud`](https://archlinux.org/packages/multilib/x86_64/lib32-mangohud/) from the `extra`/`multilib` repository. [`mangohud-git`](https://aur.archlinux.org/packages/mangohud-git/) and [`lib32-mangohud-git`](https://aur.archlinux.org/packages/lib32-mangohud-git/) are available on the AUR to be installed via your favourite AUR helper. These can help fix issues with the hud not activating when using stable releases from pacman!\n\nIf you are building it by yourself, you need to enable multilib repository, by editing pacman config:\n\n```\nsudo nano /etc/pacman.conf\n```\n\nand uncomment:\n\n```txt\n#[multilib]\n#Include = /etc/pacman.d/mirrorlist\n```\n\nthen save the file and execute:\n\n```\nsudo pacman -Syy\n```\n\n### Debian, Ubuntu\n\nIf you are using Debian 11 (Bullseye) or later, Ubuntu 21.10 (Impish) or later, or distro derived from them, to install the [MangoHud](https://tracker.debian.org/pkg/mangohud) package, execute:\n\n```\nsudo apt install mangohud\n```\n\nOptionally, if you also need MangoHud for 32-bit applications,\non Debian you can execute:\n\n```\nsudo apt install mangohud:i386\n```\n\nThe 32-bit package is not available on Ubuntu.\n\n### Fedora\n\nIf you are using Fedora, to install the [MangoHud](https://src.fedoraproject.org/rpms/mangohud) package, execute:\n\n```\nsudo dnf install mangohud\n```\n\n### Solus\n\nIf you are using Solus, to install [MangoHud](https://dev.getsol.us/source/mangohud/) simply execute:\n\n```\nsudo eopkg it mangohud\n```\n\n### openSUSE\n\nIf you run openSUSE Leap or Tumbleweed you can get Mangohud from the official repositories.\nThere are two packages, [mangohud](https://software.opensuse.org/package/mangohud) for 64bit and [mangohud-32bit](https://software.opensuse.org/package/mangohud-32bit) for 32bit application support.\nTo have Mangohud working for both 32bit and 64bit applications you need to install both packages even on a 64bit operating system.\n\n```\nsudo zypper in mangohud mangohud-32bit\n```\n\nLeap doesn't seem to have the 32bit package.\n\nLeap 15.2\n\n```\nsudo zypper addrepo -f https://download.opensuse.org/repositories/games:tools/openSUSE_Leap_15.2/games:tools.repo\nsudo zypper install mangohud\n```\n\nLeap 15.3\n\n```\nsudo zypper addrepo -f https://download.opensuse.org/repositories/games:tools/openSUSE_Leap_15.3/games:tools.repo\nsudo zypper install mangohud\n```\n\n### Flatpak\n\nIf you are using Flatpaks, you will have to add the [Flathub repository](https://flatpak.org/setup/) for your specific distribution, and then, to install it, execute:\n\nFor flatpak:\n\n```\nflatpak install org.freedesktop.Platform.VulkanLayer.MangoHud\n```\n\nTo enable MangoHud for all Steam games:\n\n```\nflatpak override --user --env=MANGOHUD=1 com.valvesoftware.Steam\n```\n\n## Normal usage\n\n---\n\nTo enable the MangoHud overlay layer for Vulkan and OpenGL, run :\n\n`mangohud /path/to/app`\n\nFor Lutris games, go to the System options in Lutris (make sure that advanced options are enabled) and add this to the `Command prefix` setting:\n\n`mangohud`\n\nFor Steam games, you can add this as a launch option:\n\n`mangohud %command%`\n\nOr alternatively, add `MANGOHUD=1` to your shell profile (Vulkan only).\n\n## OpenGL\n\nOpenGL games may also need `dlsym` hooking, which is now enabled by default. Set the `MANGOHUD_DLSYM` env to `0` to disable like `MANGOHUD_DLSYM=0 %command%` for Steam.\n\nSome Linux native OpenGL games overrides LD_PRELOAD and stops MangoHud from working. You can sometimes fix this by editing LD_PRELOAD in the start script\n`LD_PRELOAD=/path/to/mangohud/lib/`\n\n## gamescope\n\nTo enable mangohud with gamescope you need to install mangoapp.\n`gamescope --mangoapp %command%`\n\nUsing normal mangohud with gamescope is not supported.\n\n## Hud configuration\n\nMangoHud comes with a config file which can be used to set configuration options globally or per application. Usually it is installed as `/usr/share/doc/mangohud/MangoHud.conf.example` or [get a copy from here](https://raw.githubusercontent.com/flightlessmango/MangoHud/master/data/MangoHud.conf).\n\nThe priorities of different config files are:\n\n1. `/path/to/application/dir/MangoHud.conf`\n2. Per-application configuration in ~/.config/MangoHud:\n    1. `~/.config/MangoHud/\u003capplication_name\u003e.conf` for native applications, where `\u003capplication_name\u003e` is the case sensitive name of the executable\n    2. `~/.config/MangoHud/wine-\u003capplication_name\u003e.conf` for wine/proton apps, where `\u003capplication_name\u003e` is the case sensitive name of the executable without the `.exe` ending\n3. `~/.config/MangoHud/MangoHud.conf`\n\nExample: For Overwatch, this would be `wine-Overwatch.conf` (even though the executable you run from Lutris is `Battle.net.exe`, the actual game executable name is `Overwatch.exe`).\n\nIf you start the game from the terminal with MangoHud enabled (for example by starting Lutris from the terminal), MangoHud will print the config file names it is looking for.\n\nYou can find an example config in /usr/share/doc/mangohud\n\n[GOverlay](https://github.com/benjamimgois/goverlay) is a GUI application that can be used to manage the config\n\n---\n\n### Environment Variables\n\nYou can also customize the hud by using the `MANGOHUD_CONFIG` environment variable while separating different options with a comma. This takes priority over any config file.\n\nYou can also specify configuration file with `MANGOHUD_CONFIGFILE=/path/to/config` for applications whose names are hard to guess (java, python etc).\n\nYou can also specify presets file with `MANGOHUD_PRESETSFILE=/path/to/config`. This is especially useful when running mangohud in a sandbox such as flatpak.\n\nYou can also specify custom hud libraries for OpenGL using `MANGOHUD_OPENGL_LIBS=/path/to/libMangoHud_opengl.so`. This is useful for testing MangoHud without modifying the installation on your system.\n\nA partial list of parameters are below. See the config file for a complete list.\nParameters that are enabled by default have to be explicitly disabled. These (currently) are `fps`, `frame_timing`, `cpu_stats` (cpu load), `gpu_stats` (gpu load), and each can be disabled by setting the corresponding variable to 0 (e.g., fps=0).\n\n| Variable                           | Description                                                                           |\n|------------------------------------|---------------------------------------------------------------------------------------|\n| `af`                               | Anisotropic filtering level. Improves sharpness of textures viewed at an angle `0`-`16` |\n| `alpha`                            | Set the opacity of all text and frametime graph `0.0`-`1.0`                           |\n| `arch`                             | Show if the application is 32- or 64-bit                                              |\n| `autostart_log=`                   | Starts the log after X seconds from mangohud init                                     |\n| `background_alpha`                 | Set the opacity of the background `0.0`-`1.0`                                         |\n| `battery_color`                    | Change the battery text color                                                         |\n| `battery_icon`                     | Display battery icon instead of percent                                               |\n| `battery_watt`                     | Display wattage for the battery option                                                |\n| `battery_time`                     | Display remaining time for battery option                                             |\n| `battery`                          | Display current battery percent and energy consumption                                |\n| `benchmark_percentiles`            | Configure which framerate percentiles are shown in the logging summary. Default is `97,AVG,1,0.1` |\n| `bicubic`                          | Force bicubic filtering                                                               |\n| `blacklist`                        | Add a program to the blacklist. e.g `blacklist=vkcube,WatchDogs2.exe`                 |\n| `cellpadding_y`                    | Set the vertical cellpadding, default is `-0.085` |\n| `control=`                         | Sets up a unix socket with a specific name that can be connected to with mangohud-control.\u003cbr\u003eI.e. `control=mangohud` or `control=mangohud-%p` (`%p` will be replaced by process id)    |\n| `core_load_change`                 | Change the colors of cpu core loads, uses the same data from `cpu_load_value` and `cpu_load_change` |\n| `core_load`                        | Display load \u0026 frequency per core                                                     |\n| `core_bars`                        | Change the display of `core_load` from numbers to vertical bars                       |\n| `cpu_load_change`                  | Change the color of the CPU load depending on load                                    |\n| `cpu_load_color`                   | Set the colors for the gpu load change low, medium and high. e.g `cpu_load_color=0000FF,00FFFF,FF00FF` |\n| `cpu_load_value`                   | Set the values for medium and high load e.g `cpu_load_value=50,90`                    |\n| `cpu_mhz`                          | Show the CPUs current MHz                                                             |\n| `cpu_power`\u003cbr\u003e`gpu_power`         | Display CPU/GPU draw in watts                                                         |\n| `cpu_temp`\u003cbr\u003e`gpu_temp`\u003cbr\u003e`gpu_junction_temp`\u003cbr\u003e`gpu_mem_temp`           | Display current CPU/GPU temperature                                                  |\n| `cpu_text`\u003cbr\u003e`gpu_text`           | Override CPU and GPU text. `gpu_text` is a list in case of multiple GPUs              |\n| `custom_text_center`               | Display a custom text centered useful for a header e.g `custom_text_center=FlightLessMango Benchmarks` |\n| `custom_text`                      | Display a custom text e.g `custom_text=Fsync enabled`                                 |\n| `debug`                            | Shows the graph of gamescope app frametimes and latency (only on gamescope obviously) |\n| `device_battery_icon`              | Display wirless device battery icon.                                                  |\n| `device_battery`                   | Display wireless device battery percent. Currently supported arguments `gamepad` and `mouse` e.g `device_battery=gamepad,mouse` |\n| `display_server`                   | Display the current display session (e.g. X11 or wayland)                             |\n| `dynamic_frame_timing`             | This changes frame_timing y-axis to correspond with the current maximum and minimum frametime instead of being a static 0-50 |\n| `engine_short_names`               | Display a short version of the used engine (e.g. `OGL` instead of `OpenGL`)           |\n| `engine_version`                   | Display OpenGL or vulkan and vulkan-based render engine's version                     |\n| `exec`                             | Display output of bash command in next column, e.g. `custom_text=/home` , `exec=df -h /home \\| tail -n 1`. Only works with `legacy_layout=0` |\n| `exec_name`                        | Display current exec name                                                             |\n| `fan`                              | Shows the Steam Deck fan rpm                                                          |\n| `fcat`                             | Enables frame capture analysis                                                        |\n| `fcat_overlay_width=`              | Sets the width of fcat. Default is `24`                                               |\n| `fcat_screen_edge=`                | Decides the edge fcat is displayed on. A value between `1` and `4`                    |\n| `font_file_text`                   | Change text font. Otherwise `font_file` is used                                       |\n| `font_file`                        | Change default font (set location to .TTF/.OTF file)                                  |\n| `font_glyph_ranges`                | Specify extra font glyph ranges, comma separated: `korean`, `chinese`, `chinese_simplified`, `japanese`, `cyrillic`, `thai`, `vietnamese`, `latin_ext_a`, `latin_ext_b`. If you experience crashes or text is just squares, reduce font size or glyph ranges |\n| `font_scale=`                      | Set global font scale. Default is `1.0`                                               |\n| `font_scale_media_player`          | Change size of media player text relative to `font_size`                              |\n| `font_size=`                       | Customizable font size. Default is `24`                                              |\n| `font_size_text=`                  | Customizable font size for other text like media metadata. Default is `24`           |\n| `fps_color_change`                 | Change the FPS text color depepending on the FPS value                                |\n| `fps_color=`                       | Choose the colors that the fps changes to when `fps_color_change` is enabled. Corresponds with fps_value. Default is `b22222,fdfd09,39f900`   |\n| `fps_limit_method`                 | If FPS limiter should wait before or after presenting a frame. Choose `late` (default) for the lowest latency or `early` for the smoothest frametimes |\n| `fps_limit`                        | Limit the apps framerate. Comma-separated list of one or more FPS values. `0` means unlimited |\n| `fps_only`                         | Show FPS only. ***Not meant to be used with other display params***                   |\n| `fps_sampling_period=`             | Time interval between two sampling points for gathering the FPS in milliseconds. Default is `500`   |\n| `fps_value`                        | Choose the break points where `fps_color_change` changes colors between. E.g `60,144`, default is `30,60` |\n| `fps_metrics`                      | Takes a list of decimal values or the value avg, e.g `avg,0.001`                      |\n| `reset_fps_metrics`                | Reset fps metrics keybind, default is `Shift_R+F9`                                    |\n| `fps_text`                         | Display custom text for engine name in front of FPS                                   |\n| `frame_count`                      | Display frame count                                                                   |\n| `frametime`                        | Display frametime next to FPS text                                                    |\n| `frame_timing_detailed`            | Display frame timing in a more detailed chart                                         |\n| `fsr`                              | Display the status of FSR (only works in gamescope)                                   |\n| `hdr`                              | Display the status of HDR (only works in gamescope)                                   |\n| `refresh_rate`                     | Display the current refresh rate (only works in gamescope)                            |\n| `full`                             | Enable most of the toggleable parameters (currently excludes `histogram`)             |\n| `gamemode`                         | Show if GameMode is on                                                                |\n| `gpu_color`\u003cbr\u003e`cpu_color`\u003cbr\u003e`vram_color`\u003cbr\u003e`ram_color`\u003cbr\u003e`io_color`\u003cbr\u003e`engine_color`\u003cbr\u003e`frametime_color`\u003cbr\u003e`background_color`\u003cbr\u003e`text_color`\u003cbr\u003e`media_player_color`\u003cbr\u003e`network_color`         | Change default colors: `gpu_color=RRGGBB` |\n| `gpu_core_clock`\u003cbr\u003e`gpu_mem_clock`| Display GPU core/memory frequency                                                     |\n| `gpu_fan`                          | GPU fan in rpm on AMD, FAN in percent on NVIDIA |\n| `gpu_load_change`                  | Change the color of the GPU load depending on load                                    |\n| `gpu_load_color`                   | Set the colors for the gpu load change low,medium and high. e.g `gpu_load_color=0000FF,00FFFF,FF00FF` |\n| `gpu_load_value`                   | Set the values for medium and high load e.g `gpu_load_value=50,90`                    |\n| `gpu_name`                         | Display GPU name from pci.ids                                                         |\n| `gpu_voltage`                      | Display GPU voltage (only works on AMD GPUs)                                          |\n| `gpu_list`                         | List GPUs to display `gpu_list=0,1`                                                   |\n| `hide_fsr_sharpness`               | Hides the sharpness info for the `fsr` option (only available in gamescope)           |\n| `histogram`                        | Change FPS graph to histogram                                                         |\n| `horizontal`                       | Display Mangohud in a horizontal position                                             |\n| `horizontal_stretch`               | Stretches the background to the screens width in `horizontal` mode                    |\n| `hud_compact`                      | Display compact version of MangoHud                                                   |\n| `hud_no_margin`                    | Remove margins around MangoHud                                                        |\n| `io_read`\u003cbr\u003e `io_write`           | Show non-cached IO read/write, in MiB/s                                               |\n| `log_duration`                     | Set amount of time the logging will run for (in seconds)                              |\n| `log_interval`                     | Change the default log interval in milliseconds. Default is `0`                       |\n| `log_versioning`                   | Adds more headers and information such as versioning to the log. This format is not supported on flightlessmango.com (yet)    |\n| `media_player_format`              | Format media player metadata. Add extra text etc. Semi-colon breaks to new line. Defaults to `{title};{artist};{album}` |\n| `media_player_name`                | Force media player DBus service name without the `org.mpris.MediaPlayer2` part, like `spotify`, `vlc`, `audacious` or `cantata`. If none is set, MangoHud tries to switch between currently playing players |\n| `media_player`                     | Show media player metadata                                                            |\n| `no_display`                       | Hide the HUD by default                                                               |\n| `no_small_font`                    | Use primary font size for smaller text like units                                     |\n| `offset_x` `offset_y`              | HUD position offsets                                                                  |\n| `output_file`                      | Set location and name of the log file                                                 |\n| `output_folder`                    | Set location of the output files (Required for logging)                               |\n| `pci_dev`                          | Select GPU device in multi-gpu setups                                                 |\n| `permit_upload`                    | Allow uploading of logs to Flightlessmango.com                                        |\n| `picmip`                           | Mip-map LoD bias. Negative values will increase texture sharpness (and aliasing). Positive values will increase texture blurriness `-16`-`16` |\n| `position=`                        | Location of the HUD: `top-left` (default), `top-right`, `middle-left`, `middle-right`, `bottom-left`, `bottom-right`, `top-center`, `bottom-center` |\n| `preset=`                          | Comma separated list of one or more presets. Default is `-1,0,1,2,3,4`. Available presets:\u003cbr\u003e`0` (No Hud)\u003cbr\u003e `1` (FPS Only)\u003cbr\u003e `2` (Horizontal)\u003cbr\u003e `3` (Extended)\u003cbr\u003e `4` (Detailed)\u003cbr\u003eUser defined presets can be created by using a [presets.conf](data/presets.conf) file in `~/.config/MangoHud/`.                      |\n| `procmem`\u003cbr\u003e`procmem_shared`, `procmem_virt`| Displays process' memory usage: resident, shared and/or virtual. `procmem` (resident) also toggles others off if disabled |\n| `ram`\u003cbr\u003e`vram`                    | Display system RAM/VRAM usage                                                         |\n| `read_cfg`                         | Add to MANGOHUD_CONFIG as first parameter to also load config file. Otherwise only `MANGOHUD_CONFIG` parameters are used |\n| `reload_cfg=`                      | Change keybind for reloading the config. Default = `Shift_L+F4`                       |\n| `resolution`                       | Display the current resolution                                                        |\n| `retro`                            | Disable linear texture filtering. Makes textures look blocky                          |\n| `round_corners`                    | Change the amount of roundness of the corners have e.g `round_corners=10.0`           |\n| `show_fps_limit`                   | Display the current FPS limit                                                         |\n| `swap`                             | Display swap space usage next to system RAM usage                                     |\n| `table_columns`                    | Set the number of table columns for ImGui, defaults to 3                              |\n| `temp_fahrenheit`                  | Show temperature in Fahrenheit                                                        |\n| `text_outline`                     | Draw an outline around text for better readability. Enabled by default.               |\n| `text_outline_color=`              | Set the color of `text_outline`. Default = `000000`                                   |\n| `text_outline_thickness=`          | Set the thickness of `text_outline`. Default = `1.5`                                  |\n| `throttling_status`                | Show if GPU is throttling based on Power, current, temp or \"other\" (Only shows if throttling is currently happening). Currently disabled by default for Nvidia as it causes lag on 3000 series |\n| `throttling_status_graph`          | Same as `throttling_status` but displays throttling in the frametime graph and only power and temp throttling |\n| `time`\u003cbr\u003e`time_format=%T`         | Display local time. See [std::put_time](https://en.cppreference.com/w/cpp/io/manip/put_time) for formatting help. NOTE: Sometimes apps may set `TZ` (timezone) environment variable to UTC/GMT |\n| `time_no_label`                    | Remove the label before time                                                          |\n| `toggle_fps_limit`                 | Cycle between FPS limits (needs at least two values set with `fps_limit`). Defaults to `Shift_L+F1`                                    |\n| `toggle_preset`                    | Cycle between Presets. Defaults to `Shift_R+F10`                                      |\n| `toggle_hud=`\u003cbr\u003e`toggle_logging=` | Modifiable toggle hotkeys. Default are `Shift_R+F12` and `Shift_L+F2`, respectively   |\n| `toggle_hud_position`              | Toggle MangoHud position. Default is `R_Shift+F11`                                     |\n| `trilinear`                        | Force trilinear filtering                                                             |\n| `upload_log`                       | Change keybind for uploading log                                                      |\n| `upload_logs`                      | Enables automatic uploads of logs to flightlessmango.com                              |\n| `version`                          | Show current MangoHud version                                                         |\n| `vkbasalt`                         | Show if vkBasalt is on                                                                |\n| `vsync`\u003cbr\u003e `gl_vsync`             | Set Vsync for OpenGL or Vulkan                                                        |\n| `vulkan_driver`                    | Display used Vulkan driver (radv/amdgpu-pro/amdvlk)                                   |\n| `width=`\u003cbr\u003e`height=`              | Customizable HUD dimensions (in pixels)                                              |\n| `wine_color`                       | Change color of the wine/proton text                                                  |\n| `wine`                             | Show current Wine or Proton version in use                                            |\n| `winesync`                         | Show wine sync method in use                                                          |\n| `present_mode`                     | Shows current vulkan [present mode](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentModeKHR.html) or vsync status in opengl  |\n| `network`                          | Show network interfaces tx and rx kb/s. You can specify interface with `network=eth0` |\n| `fex_stats`                        | Show FEX-Emu statistics. Default = `status+apptype+hotthreads+jitload+sigbus+smc+softfloat` |\n\nExample: `MANGOHUD_CONFIG=cpu_temp,gpu_temp,position=top-right,height=500,font_size=32`\nBecause comma is also used as option delimiter and needs to be escaped for values with a backslash, you can use `+` like `MANGOHUD_CONFIG=fps_limit=60+30+0` instead.\n\n*Note: Width and Height are set automatically based on the font_size, but can be overridden.*\n\n*Note: RAPL is currently used for Intel CPUs to show power draw with `cpu_power` which may be unreadable for non-root users due to [vulnerability](https://platypusattack.com/). The corresponding `energy_uj` file has to be readable by corresponding user, e.g. by running `chmod o+r /sys/class/powercap/intel-rapl\\:0/energy_uj` as root, else the power shown will be **0 W**, though having the file readable may potentially be a security vulnerability persisting until system reboots.*\n\n*Note: The [zenpower3](https://git.exozy.me/a/zenpower3) or [zenergy](https://github.com/boukehaarsma23/zenergy) kernel driver must be installed to show the power draw of Ryzen CPUs.*\n\n## Vsync\n\n### OpenGL Vsync\n\n- `-1` = Adaptive sync\n- `0`  = Off\n- `1`  = On\n- `n`  = Sync to refresh rate / n.\n\n### Vulkan Vsync\n\n- `0` = Adaptive VSync (FIFO_RELAXED_KHR)\n- `1` = Off (IMMEDIATE_KHR)\n- `2` = Mailbox (VSync with uncapped FPS) (MAILBOX_KHR)\n- `3` = On (FIFO_KHR)\n\nNot all vulkan vsync options may be supported on your device, you can check what your device supports here [vulkan.gpuinfo.org](https://vulkan.gpuinfo.org/listsurfacepresentmodes.php?platform=linux)\n\n## Keybindings\n\n- `Shift_L+F2` : Toggle Logging\n- `Shift_L+F4` : Reload Config\n- `Shift_R+F12` : Toggle Hud\n- `Shift_R+9` : Reset FPS metrics\n\n## Workarounds\n\nOptions starting with \"gl_*\" are for OpenGL.\n\n- `gl_size_query = viewport` : Specify what to use for getting display size. Options are \"viewport\", \"scissorbox\" or disabled. Defaults to using glXQueryDrawable.\n- `gl_bind_framebuffer = 0..N` : (Re)bind given framebuffer before MangoHud gets drawn. Helps with Crusader Kings III.\n- `gl_dont_flip = 1` : Don't swap origin if using GL_UPPER_LEFT. Helps with Ryujinx.\n\n## FPS logging\n\nYou must set a valid path for `output_folder` in your configuration to store logs in.\n\nWhen you toggle logging (default keybind is `Shift_L+F2`), a file is created with the game name plus a date \u0026 timestamp in your `output_folder`.\n\nLog files can be visualized with two different tools: online and locally.\n\n### Online visualization: FlightlessMango.com\nLog files can be (batch) uploaded to [FlightlessMango.com](https://flightlessmango.com/games/user_benchmarks), which will then take care of creating a frametime graph and a summary with 1% min / average framerate / 97th percentile in a table form and a horizontal bar chart form.\n\nNotes:\n- Uploaded benchmarks are public: you can share them with anyone by simply giving them the link.\n- Benchmark filenames are used as legend in the produced tables and graphs, they can be renamed after the upload.\n\n![Gif illustrating the log uploading process](assets/log_upload_example.gif)\n\n### Local visualization: `mangoplot`\n`mangoplot` is a plotting script that is shipped with `MangoHud`: on a given folder, it takes each log file, makes a 1D heatmap of its framerates, then stacks the heats maps vertically to form a 2D graph for easy visual comparison between benchmarks.\n\nExample output:\n\n![Overwatch 2 windows 11 vs linux](assets/Overwatch2-w11-vs-linux.svg)\n\n\u003csub\u003e\u003csup\u003eOverwatch 2, 5950X + 5700XT, low graphics preset, FHD, 50% render scale\u003c/sup\u003e\u003c/sub\u003e\n\n## Metrics support by GPU vendor\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003cth\u003e\u003c/th\u003e\n\t\t\u003cth\u003eNvidia\u003c/th\u003e\n\t\t\u003cth\u003eAMD\u003c/th\u003e\n\t\t\u003cth colspan=\"2\"\u003eIntel\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e\u003c/td\u003e\n\t\t\u003cth\u003ei915\u003c/th\u003e\n\t\t\u003cth\u003exe\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eUsage%\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e3\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e3\u003c/sup\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eTemperature\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e1,2\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eJunction Temperature\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eMemory Temperature\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eMemory Used\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e3\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e3\u003c/sup\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eMemory Total\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eMemory Clock\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eCore Clock\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003ePower Usage\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e2\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e2\u003c/sup\u003e\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eThrottling Status\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eFan Speed\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003csup\u003e2\u003c/sup\u003e\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eVoltage\u003c/td\u003e\n\t\t\u003ctd\u003e🔴\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\t\u003ctd\u003e🟢\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n- 1 - requires linux 6.13+\n- 2 - integrated gpus are not supported\n- 3 - shows usage per-process, not total system usage\n","funding_links":["https://patreon.com/FlightlessMango","https://www.paypal.me/flightlessmango"],"categories":["C","Linux Performance","Applications","Hardware Performance(CPU, GPU, Gaming Peripherals)","Steam Deck Development","Utilities","Linux","Tools","Performance"],"sub_categories":["rFactor","Games","Gaming Peripherals","Unreal Engine 5 Books","Overlays","Other"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightlessmango%2FMangoHud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflightlessmango%2FMangoHud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflightlessmango%2FMangoHud/lists"}