MangoHud

From LinuxReviews
Jump to navigationJump to search
Utilities-system-monitor-4.png

MangoHud is a heads up display for Vulkan and OpenGL games and applications. The project started as a modified version of the built-in Mesa heads up display for Vulkan. OpenGL support was added in version 0.3.0 in March 2020. MangoHud is prettier and more configurable than the built-in Mesa HUD and it has handy keyboard shortcuts for turning the HUD (F12) and logging (F2) on/off. It is specially useful for games who play Windows games using Wine and DXVK.

Features And Usability

Vkmark-with-MangoHud.jpg
vkmark running with the MangoHud (MANGOHUD=1 vkmark -s 1200x600)

MangoHud can be enabled in Vulkan gaames and programs by launching applications with the environmental variable MANGOHUD=1:

MANGOHUD=1 vkmark -s 1200x600

It is possible to set MANGOHUD=1 in your shells profile but it is not a good idea.

Mangohud can, as of version 0.3.0, be enabled on OpenGL (and Vulkan) games by pre-fixing the game with mangohud. That binary will provide any OpenGL or Vulkan executable given as an argument with a heads-up display:

mangohud supertuxkart

Kemonomimi rabbit.svg
Note: MANGOHUD=1 will not add a HUD to OpenGL applications. You have to use mangohud desiredprogram to use MangoHud with OpenGL programs. mangohud desiredprogram works with both Vulkan and OpenGL games.

How MangoHud looks can be configured with a environmental variable called MANGOHUD_CONFIG OR by editing the configuration file it installs in $HOME/.config/MangoHud/MangoHud.conf. This differs from the build-in Mesa Vulkan HUD which can only be configured using a environmental variable called VK_LAYER_MESA_OVERLAY_CONFIG=.

Vkmark-hud.jpg
vkmark with the build-in Mesa Vulkan HUD.

The MangoHud is arguably better-looking than the build-in Mesa Vulkan HUD and it is also prettier than the Gallium Hud for OpenGL.

MangoHud-vs-mesa-hud.jpg
MangoHud (left) vs the built-in Mesa HUD (right]

A side-by-side comparison gives the distinct impression that MangoHud is made by and for games who stream their video games while the Mesa Vulkan HUD is written by and for developers.

MangoHud is very configurable. It can be configured using the configuration file in $HOME/.config/MangoHud/MangoHud.conf. A default configuration file with helpful comments can be found in /usr/share/doc/mangohud. You may want to copy the file into your home directory and make the changes you want.

MangoHud can show a very wide range of information about your system and your graphics card. It can show CPU load, GPU load, system memory usage, GPU memory usage, GPU clocks and a whole lot more.

Verdict And Conclusion

MangoHud is a very nice heads up display for Vulkan and OpenGL games and applications. It is specially useful for those who play Windows games in Wine with DXVK translating the Direct3D calls to Vulkan. It is prettier than both the build-in Mesa Vulkan HUD and the built-in DXVK HUD.

The built-in F12 keyboard shortcut for toggling the MangoHUDs visibility is a nice touch which the other methods of displaying a HUD on Vulkan games and applications lack.

The ability to make logs which can be uploaded to flightlessmango.com and turned into nice detailed graphs is also a very nice touch.

The only downside MangoHud has is that you do have to install it. You already have the built-in Mesa Vulkan HUD if you can run Vulkan games and you have DXVKs HUD if you use DXVK. MangoHud isn't just there, you do have to install it. Doing so is worth it if you want a prettier heads up displays than those the alternatives provide.

Installation

Installation from source is rather easy. Just clone the repository,

git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git

then change into the directory it makes

cd MangoHud

and build it with

./build.sh build
./build.sh package

The build script will prompt you if there are any missing dependencies and ask if you want it to automatically install them using sudo.

You can install it system-wide by running:

./build.sh install

The current git version will ask you for your password and use sudo to install it system-wide.

build.sh will build both i686 and x86-64 libraries. This means that it works fine with both native Vulkan applications and Windows games launched in Wine with DXVK.

Quirks & Workarounds

The MangoHud hud does not show up in certain OpenGL games (namely SuperTuxKart git) unless you run it with MANGOHUD_DLSYM=1 as in:

MANGOHUD_DLSYM=1 mangohud supertuxkart

Why MangoHud fails to show up in certain versions of certain games is unclear.

Graphical Front-Ends

GOverlay is user-friendly and straightforward graphical program for configuring and toggling MangoHud.

GOverlay is totally worth a look if you use or plan on using MangoHud.

Links

The source for MangoHud is available at github.com/flightlessmango/MangoHud.

The website flightlessmango.com has very nice charts which are generated using user-uploaded logs made by MangoHud.


avatar

Anonymous (7e84265728)

20 months ago
Score 0
I still don't understand the purpose of this tool. I'm searching everywhere online to understand why this would be useful.
avatar

Anonymous (fe5a124926)

20 months ago
Score 0
It can help as a troubleshooting tool, help you determine the bottleneck in a PC, or help you determine optimal graphics settings for a specific game.
avatar

Anonymous (e46927eeae)

19 months ago
Score 0
are you autistic? how can you not understand how seeing performance metrics can be helpful?
Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.