Jump to content

MangoHud

From ArchWiki

MangoHud is a Vulkan and OpenGL overlay for monitoring system performance while inside applications and to record metrics for benchmarking.

Installation

Install mangohud and lib32-mangohud since many old games are 32-bit-only.

Configuration

MangoHud is configured via the following files, which are read in the following order:

  1. $XDG_CONFIG_HOME/MangoHud/MangoHud.conf
  2. $XDG_CONFIG_HOME/MangoHud/APPLICATION-NAME.conf (case-sensitive)
  3. $XDG_CONFIG_HOME/MangoHud/wine-APPLICATION-NAME.conf (for Wine applications, case-sensitive, without the .exe extension)
  4. ./MangoHud.conf
  5. $MANGOHUD_CONFIGFILE (via environment variables)
Tip An example configuration file with comments can be found in the project's repository.

GUI for configuration

A GUI for configuring MangoHud can be installed from goverlay or mangojuiceAUR.

Usage

Keyboard commands

The default keyboard shortcuts include:

Keyboard shortcut Description
Shift_R+F12 Toggle overlay (HUD)
Shift_R+F11 Toggle overlay (HUD) position
Shift_R+F10 Toggle preset
Shift_L+F1 Toggle FPS limit
Shift_L+F2 Toggle logging
Shift_L+F4 Reload configuration
Shift_L+F3 Upload log file
Shift_R+F9 Reset FPS metrics
Note Keyboard shortcut values are transcribed as used in the upstream's configuration file.

Test configuration

Verify if the program has been setup correctly:

$ mangohud glxgears
$ mangohud vkcube

Run a single game

To run a game with MangoHud start it like this:

$ mangohud game

Dynamic hooking for OpenGL applications

The dlsym hook is enabled by default for OpenGL applications. Set the environment variable MANGOHUD_DLSYM=0 to disable it in case of problems, like so:

$ MANGOHUD_DLSYM=0 game
Note For Steam launch options, use the following instead:
MANGOHUD_DLSYM=0 %command%

Use with GameMode

To launch a game with both MangoHud and GameMode, chain the two commands into a single one, like this:

$ mangohud gamemoderun game

Run a single Steam game

To make Steam start a game with MangoHud, right click the game in the Library, select Properties..., then in the Launch Options text box enter:

mangohud %command%

Run a single Steam game with GameMode enabled too

Same as for enabling Steam game to run with Mangohud but also with option to use it alongside GameMode

mangoud gamemoderun %command%

Run Steam with MangoHud

To avoid having to change launch options for all games, you may launch Steam directly with MangoHud:

$ mangohud steam-runtime

MangoHud will detect Steam and will avoid loading itself until a game is launched.

Enable for all Vulkan games

To make MangoHud automatically launch with all Vulkan games, it is possible to set the following environment variable:

MANGOHUD=1

Troubleshooting

MangoHUD does not work with native OpenGL Linux applications

Some Linux native OpenGL applications override LD_PRELOAD, preventing MangoHUD from loading. Sometimes, it's possible to edit the app's start script to include the path to MangoHUD's files, like so:

LD_PRELOAD=/usr/lib/mangohud/