Using MangoHud to check FPS, CPU & GPU usage on a ‘hackendeck’

MangoHud

Previously I followed Valve’s documentation to build a ‘hackendeck’ using a mini PC to emulate their highly anticipated Steam Deck. Interestingly the ‘hackendeck’ uses a Linux OS, specifically Manjaro, as whilst Valve based their earlier version of Steam OS on Debian, they have now switched to being based on Arch.

If the ‘hackendeck’ had just been Steam on Windows then to review gaming performance I’d just use MSI Afterburner. Until now, however, for Linux, I’ve always had to estimate the average FPS as I’ve not been aware of a good reliable equivalent.

Fortunately several ‘commenters’ recommended using MangoHud, a Linux open-source Vulkan/OpenGL overlay for monitoring FPS, CPU/GPU usage, and temperatures similar to MSI Afterburner. So now I’ve been able to capture the average frame rate for the games I previously tested and I’ll present them below.

MangoHud Installation and configuration

The installation of MangoHud was extremely simple. First I installed an AUR helper with the command


manjaro yay package

I then used this to install MangoHud with:


install mangohud

Then after creating the directories ‘.config/MangoHud’ and ‘mangologs’ I copied the example configuration file ‘/usr/share/doc/mangohud/MangoHud.conf.example’ to ‘.config/MangoHud/MangoHud.conf’ and tweaked a few of the settings like adding temperatures, removing frame timings, setting an output folder and changing the on-screen position and toggle keys so as not to conflict with in-game keys:

configure mangohud

Finally, I simply started Steam with ‘mangohud steam’.

Gaming Performance

Starting with Counter-Strike: Global Offensive, using default settings with 1280×720 resolution the average frame rate was 90.0 FPS:

hackendeck mangohub csgo average

as demonstrated by the following short screen capture:

In Grand Theft Auto V using default settings, 1280×720 resolution and ‘VSync’ off, during the final built-in benchmark the frame rate average was 67.7 FPS:

steam deck mangohud gtav average

The following is a short extract captured during the benchmark:

Next, I repeated the Shadow Of The Tomb Raider built-in benchmark again using the lowest graphical preset with 1280×720 resolution. However since rebooting the game display has inexplicably become ‘red & white’ instead of color. It only happens in this game and doesn’t appear to affect the framerate or performance. It is just like watching everything through AMD spectacles as can be seen from the following benchmark extract:

The average is still the same as before at 44 FPS:

sottr average fps

Then I played some Doom Eternal from my external storage drive connected by USB. Using the game’s defaults settings and 1280×720 resolution the average frame rate was 44.4 FPS:

mangohud linux doom average fps

and gameplay looked like this:

After publishing the previous article several ‘reddit’ comments have referred to a video posted by Linus Sebastian from LTT of his experiences using an official Steam Deck. In the video, the frame rate for Doom Eternal was much higher than I observed. Whilst there are several reasons for this, one difference I noticed was that he had changed some of the default game settings and from what I could tell these included turning both ‘vertical sync’ and ‘motion blur’ off and setting ‘overall quality’ to medium. When I used similar settings:

doom-ltt-settings-1
doom-ltt-settings-2
doom-ltt-settings-3
doom-ltt-settings-4
the average frame rate improved to 52.6 FPS:

doom ltt settings average fps

as can be seen in the following example:

Final Observations

An interesting benefit of using MangoHud is the ability to observe both CPU and GPU usage. Both Shadow of the Tomb Raider and Doom Eternal were heavily GPU bound. This was less so with CS:GO and GTA V with the latter having the highest CPU usage. This aligns with Valve’s point that because the Steam Deck’s GPU is stronger, although its CPU is weaker, the expectation is that its performance will be either the same or better than this mini PC.

Share this:

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK Pi 4C Plus
Subscribe
Notify of
guest
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
7 Comments
oldest
newest
frostwork
frostwork
2 years ago

Thanks for both the original article and the follow-up!
I visit cnx-software for years almost daily, and it is great to see you’re also writing high-quality linux gaming related articles now. 👍

crashoverride
crashoverride
2 years ago

Regarding “turning vsync off” in benchmarks, the following article provides some relevant information: https://arstechnica.com/gaming/2021/11/valve-provides-a-deep-dive-into-steam-decks-custom-hardware-design/ Since the APU doesn’t have any hard limits for its power draw, Valve said games running on Steam Deck should impose a frames-per-second limit of 60 fps (to match the display) or 30 fps (for games that push the GPU) in order to maintain battery life. That frame-rate limit also helps contribute to the Steam Deck’s battery life on many games, AMD said. If a game renders a frame faster than the 16.66 milliseconds needed for the 60 fps frame rate, the APU will instantly switch… Read more »

2 years ago

I used to use mangohud, but then I found out that it crashes on certain games, like tf2.

varok
varok
2 years ago

Thanks for the article, very useful, shame it doesnt have a proper GUI and seamless install, maybe Steam Deck will finally get some people to put effort into these things.

Also Steam itself has an FPS counter built in last I checked, unless its missing in Linux version. Its in steam-settings-ingame-fps counter on windows.

linuxium
2 years ago

It is not so much having an FPS counter per se, which incidentally is availabe in Linux, but the ability to captures the FPS results over time in order to analyse and derive, for example, the average FPS. This is why I use a tool like MSI Afterburner in Windows and will now use MangoHud in Linux plus they can additionally capture other statistics like temperature, load, frequencies etc. which are also useful performance metrics.

Thatguy
Thatguy
2 years ago

Try out SpecialK.

Anon
Anon
2 years ago

Why on earth would they need SpecialK. MangoHud does literally everything they need.

Khadas VIM4 SBC