MangoHud Performance Monitoring

If you frequently follow graphics cards, AAA game titles, or hardware reviews of phones and tablets, you'll often come across metrics like FPS and frame rate stability.

Sometimes I even want to test them myself, not to reach the level of a Zhuhai white goods tycoon like Ms. Dong, but simply for fun or to verify a solution.

For example, AMD has three Vulkan drivers for Linux:

    1. vulkan-radeon (RADV, part of the Mesa project)
    1. amdvlk (AMDVLK Open, maintained by AMD)
    1. vulkan-amdgpu-pro (AMDVLK Closed, maintained by AMD)

RADV belongs to Mesa, an open-source project with a large following and likely more frequent updates. AMDVLK Open is officially maintained by AMD, with a new version seemingly released quarterly. AMDVLK Closed is for high-end GPUs.

So, let's say you're a Linux gamer like me, with a base-level AMD APU and wondering whether to choose RADV or AMDVLK. You need to conduct basic performance testing. The simplest solution is to enable framerate monitoring in Steam, but the metrics are too simple (currently only FPS monitoring is available on Linux) and not ideal. Furthermore, not all Linux games are available on Steam. In this case, you need a tool like MangoHud.

First, let me state my conclusion. On my device (AMD Radeon 780M Graphics), after multiple tests on Dota 2 and CS2, AMDVLK Open still outperforms RADV. If you're not convinced, give it a try.

Second, I'd like to explain MangoHud. To help you remember the name, this is just a guess:

Mango is part of the author's name for the repository https://github.com/flightlessmango/MangoHud. The author's icon is a mango 🥭; HUD is a general concept, like the heads-up digital display or head-up display that many new energy vehicles now have. It basically displays brief navigation information, vehicle speed, and other monitoring information. It's similar to the frame rate and GPU usage we use here.

This makes it easier to remember the name.

The following is my practical operation log:

1. Installation

1sudo pacman -S mangohud goverlay

goverlay is a graphical configuration program for mangohud. Its interface is developed in QT. I don't think anyone other than a professional reviewer would bother manually modifying the .config/MangoHud/MangoHud.conf configuration file. Having a graphical configuration program is quite helpful.

After installation is complete, you can run a simple test, like a code linter:

1$ mangohud glxgears
2$ mangohud vkcube

glxgears will display three scrolling gears:

mangohud_glxgears

vkcube will display a rotating cube:

mangohud_vkcube
If you haven't installed any games yet, you can use these two programs to verify that the graphics driver is properly installed.

2. Usage

  • Single Game Usage

For a simple and straightforward approach, simply run mangohud game, where game is the game launch command. For example:

1➜ mangohud mari0

mangohud_mari0

  • Steam Game Example

Right-click the game in the library, select Properties, and then enter the following in the Launch Options text box:

1mangohud %command%
  • Environment Variables

To automatically launch MangoHud with all Vulkan games, set the following environment variable:

1MANGOHUD=1

For example, in my labwc:

1➜ ~ cat .config/labwc/environment | tail -n 3
2
3#MangoHud
4MANGOHUD=1

The advantage of this approach is that you don't have to change the startup options for each Steam game. The downside is that not all games support it, such as supertuxkart.

3. Configuration

Here's my configuration:

 1➜ ~ grep -Ev '^#|^$' .config/MangoHud/MangoHud.conf
 2legacy_layout=false
 3background_alpha=0.1
 4round_corners=10
 5background_alpha=0.1
 6background_color=000000
 7font_file=/usr/share/fonts/TTF/HackNerdFont-Regular.ttf
 8font_size=16
 9text_color=FFFFFF
10position=top-right
11toggle_hud=Shift+R+F12
12pci_dev= 0:c4:00.0
13table_columns=5
14gpu_text=GPU
15gpu_stats
16gpu_load_change
17gpu_load_value=50,90
18gpu_load_color=FFFFFF,FFAA7F,CC0000
19gpu_core_clock
20gpu_mem_clock
21gpu_temp
22gpu_power
23gpu_color=2E9762
24cpu_text=CPU
25cpu_stats
26cpu_load_change
27cpu_load_value=50,90
28cpu_load_color=FFFFFF,FFA A7F,CC0000
29cpu_mhz
30cpu_temp
31cpu_power
32cpu_color=2E97CB
33vram
34vram_color=AD64C1
35vram_color=AD64C1
36ram
37ram_color=C26693
38fps
39engine_version
40engine_color=EB5B5B
41frame_timing
42frametime_color=FFFFFF
43fps_limit_method=late
44toggle_fps_limit=Shift_L+F1
45fps_limit=0
46fps_color_change fps_color=B22222,FDFD09,39F900
47fps_value=30,60
48output_folder=/home/mephisto
49log_duration=30
50autostart_log=0
51log_interval=100
52blacklist=protonplus,lsfg-vk-ui,bazzar,gnome-calculator,pamac-manager,lact,ghb,bitwig-studio,ptyxis,yumex
53toggle_logging=Shift_L+F2

For non-experts, it is recommended to run goverlay for graphical configuration.

goverlay_1
Color Theme I personally chose: MangoHud stock.

goverlay_2

Rounded corners, background transparency 0.1, font of your choice, position, and number of columns (choose 5; multiple columns won't wrap).

Of particular note is the flip shortcut Shift+R + F12, which toggles the HUD display between on and off. This is very useful, as the selected position may obscure the game screen information.

When you want to see it, use the shortcut to call it up and switch it on or off as needed. In Steam, if Wayland is enabled, this shortcut will become ineffective. xWayland will work properly. I discovered this while testing Dota 2 and CS2.

The most interesting thing is that I'm currently using the editor Zed. Since I'm using Vukan to access the GPU, I set the environment variable MANGOHUD=1, and Mangohud appears in the upper right corner. Even on Wayland, it can be toggled on and off using shortcut keys.

As shown below:

mangohud_zed

4. Metrics Explanation

Having metrics without understanding their meanings is useless. Here are some common metrics:

  • FPS (Frames Per Second): Frames per second, indicating the current frame rate of a game or application. A higher value indicates smoother operation.
  • CPU Load: This refers to the CPU load and displays the current CPU workload, expressed as a percentage.
  • GPU Load: This refers to the GPU load, indicating the amount of work the GPU is doing when processing tasks like graphics rendering. It is also expressed as a percentage.
  • CPU Temperature: This refers to the CPU temperature, reflecting the heat generated by the CPU during operation, typically measured in degrees Celsius (°C). - GPU Temperature: Displays the GPU's operating temperature, also in degrees Celsius (°C).
  • VRAM Occupied: Displays the amount of video memory used by the current game or application, measured in bytes.
  • RAM Occupied: Displays the amount of system memory occupied, measured in bytes.
  • Frame Timing: Provides information on the time required to render each frame, which can help analyze the cause of unstable game frame rates.

There are other metrics; interested parties can consult the relevant documentation.

Finally, please see this chart:

hud_metrics
As you can see, MangoHud has the most comprehensive support for AMD. For ordinary Linux users, it's probably better to buy an AMD graphics card. So, Fxxx NVIDIA!

Lastmod: Thursday, August 28, 2025

See Also:

Translations: