MangoHud

A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb

MIT License

Stars
5.8K
Committers
105

Bot releases are hidden (Show)

MangoHud - MangoHud Version 0.6.0

Published by flightlessmango almost 4 years ago

Ordering hud elements

It's now possible to decide the order that hud elements appear in.
This is going to be the default in the future, for now you need to set legacy_layout=false to access this feature.
Add the elements to the config or environment variable in the order you want them to show. e.g

fps
gpu_stats
cpu_stats

No elements are added by default and you can add multiple of the same element

Elements Uses
version Mangohud version
time Current time
gpu_stats GPU stats - load/temp etc
cpu_stats CPU stats - load/temp etc
core_load Load and MHz per cpu core/thread
io_stats IO read and write for the app
vram Currently used vram
ram Currently used ram
fps FPS and engine name
engine_version Version of the engine
gpu_name Name of the GPU in use
vulkan_driver Vulkan driver in use
arch Architecture of the app
wine Wine/Proton version
frame_timing Frametime graph
media_player Metainfo from media players
graphs See below for more info

Graphs

It's now possible to add a variety of graphs.
Use these by adding them to the graphs param, e.g graphs=cpu_load.
Add multiple graphs by adding graphs multiple times and/or add multiple with , as a delimiter e.g graphs=gpu_load,cpu_load

Graph element Uses
gpu_load GPU load graph
cpu_load CPU load graph
gpu_temp GPU temp graph
cpu_temp GPU temp graph
gpu_core_clock GPU core clock graph
gpu_mem_clock GPU memory clock graph
ram Ram graph
vram Vram graph

New params

param use
fps_limit fps_limit can now take multiple variables, making it possible to switch between them e.g fps_limit=60,120
toggle_fps_limit set keybind for toggling fps limits
frametime Display frametime next to FPS, on by default
cpu_power Displays CPU power draw in Watts (might not work on intel)
table_columns Set the amount of ImGui table columns, default is 3
blacklist Add a program to the blacklist. e.g blacklist=vkcube,WatchDogs2.exe
cellpadding_y Set the vertical cellpadding, default is -0.085
cpu_load_change Changes the color of the CPU load depending on load
cpu_load_color Set the colors for the cpu load change low,medium and high. e.g cpu_load_color=0000FF,00FFFF,FF00FF
cpu_load_value Set the values for medium and high load e.g cpu_load_value=50,90
gpu_load_change Changes the color of the GPU load depending on load
gpu_load_color Set the colors for the gpu load change low,medium and high. e.g gpu_load_color=0000FF,00FFFF,FF00FF
gpu_load_value Set the values for medium and high load e.g gpu_load_value=50,90
autostart_log Automatically start a log file after X seconds from app start e.g autostart_log=5
no_small_font Use primary font size for smaller text like units
cpu_mhz Displays the CPUs current MHz

Changes and Improvements

  • Fixed MangoHud OpenGL not showing in Black Ice
  • Fixed MangoHud OpenGL being a black box in Total War: MEDIEVAL II
  • Fixed MangoHud OpenGL not working in Divinity Original Sin Enhanced Edition
  • Fixed MangoHud OpenGL not working in Mount & Blade: Warband
  • Attempted fix for fps limit sometimes breaking
  • Fixed colors not updating
  • Moved frame_timing ms to above the graph instead of beside
  • Allow graphs to take up the entire region
  • Permitting more delimiters, , : and + are now acceptable
MangoHud -

Published by flightlessmango almost 4 years ago

Ordering hud elements

It's now possible to decide the order that hud elements appear in.
This is going to be the default in the future, for now you need to set legacy_layout=false to access this feature.
Add the elements to the config or environment variable in the order you want them to show. e.g

fps
gpu_stats
cpu_stats

No elements are added by default and you can add multiple of the same element

Elements Uses
version Mangohud version
time Current time
gpu_stats GPU stats - load/temp etc
cpu_stats CPU stats - load/temp etc
core_load Load and MHz per cpu core/thread
io_stats IO read and write for the app
vram Currently used vram
ram Currently used ram
fps FPS and engine name
engine_version Version of the engine
gpu_name Name of the GPU in use
vulkan_driver Vulkan driver in use
arch Architecture of the app
wine Wine/Proton version
frame_timing Frametime graph
media_player Metainfo from media players
graphs See below for more info

Graphs

It's now possible to add a variety of graphs.
Use these by adding them to the graphs param, e.g graphs=cpu_load.
Add multiple graphs by adding graphs multiple times and/or add multiple with , as a delimiter e.g graphs=gpu_load,cpu_load

Graph element Uses
gpu_load GPU load graph
cpu_load CPU load graph
gpu_temp GPU temp graph
cpu_temp GPU temp graph
gpu_core_clock GPU core clock graph
gpu_mem_clock GPU memory clock graph
ram Ram graph
vram Vram graph

New params

param use
fps_limit fps_limit can now take multiple variables, making it possible to switch between them e.g fps_limit=60,120
toggle_fps_limit set keybind for toggling fps limits
frametime Display frametime next to FPS, on by default
cpu_power Displays CPU power draw in Watts (might not work on intel)
table_columns Set the amount of ImGui table columns, default is 3
blacklist Add a program to the blacklist. e.g blacklist=vkcube,WatchDogs2.exe
cellpadding_y Set the vertical cellpadding, default is -0.085
cpu_load_change Changes the color of the CPU load depending on load
cpu_load_color Set the colors for the cpu load change low,medium and high. e.g cpu_load_color=0000FF,00FFFF,FF00FF
cpu_load_value Set the values for medium and high load e.g cpu_load_value=50,90
gpu_load_change Changes the color of the GPU load depending on load
gpu_load_color Set the colors for the gpu load change low,medium and high. e.g gpu_load_color=0000FF,00FFFF,FF00FF
gpu_load_value Set the values for medium and high load e.g gpu_load_value=50,90
autostart_log Automatically start a log file after X seconds from app start e.g autostart_log=5
no_small_font Use primary font size for smaller text like units

Changes and Improvements

  • Fixed MangoHud OpenGL not showing in Black Ice
  • Fixed MangoHud OpenGL being a black box in Total War: MEDIEVAL II
  • Fixed MangoHud OpenGL not working in Divinity Original Sin Enhanced Edition
  • Fixed MangoHud OpenGL not working in Mount & Blade: Warband
  • Attempted fix for fps limit sometimes breaking
  • Fixed colors not updating
  • Moved frame_timing ms to above the graph instead of beside
  • Allow graphs to take up the entire region
  • Permitting more delimiters, , : and + are now acceptable
MangoHud - MangoHud Version 0.5.1

Published by flightlessmango about 4 years ago

Changes and Improvements

  • Fixed a memory leak in Source Engine 1 games (CSGO, TF2 etc)
  • You can use mangohud --dlsym as an alternative to MANGOHUD_DLSYM=1
  • MangoHud now comes with a man page man mangohud
  • Added support for KDE neon in build script
  • output_file is now replaced by output_folder, the files are automatically named after the programs executable
  • By pressing Shift_L+F3 you will automatically upload the latest log file to Flightlessmango.com and open up said benchmark. To upload all logs for this session, the default keybind is Control_L=F3. Both of these require that you set the permit_upload param to 1 and output_folder
  • Added supported for more glyph ranges

Parameters

Options Description
media_player_order Media player metadata field order. Defaults to title,artist,album.
media_player_name Not setting this value shows info from any MPRIS player
permit_upload Allow uploading of logs to Flightlessmango.com, default is 0
upload_log Change keybind for uploading log
font_file_text Change text font. Otherwise font_file is used
font_size_text= Customizeable font size for other text like media metadata (default=24)
font_scale= Set global font scale (default=1.0)
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.
benchmark_percentiles Choose what percentiles you want to show in the quick benchmark e.g. benchmark_percentiles=AVG+0.1+97+95. Defaults to 97+AVG+1+0.1 (Thanks @kingdom5500)
wine Shows current Wine or Proton version in use (Thanks @gort818)
wine_color Change color of the wine/proton text
output_folder Specify folder where logs are saved output_folder=/tmp
MangoHud - MangoHud Version 0.5.0 beta 1

Published by flightlessmango about 4 years ago

Changes and Improvements

  • Fixed a memory leak in Source Engine 1 games (CSGO, TF2 etc)
  • You can use mangohud --dlsym as an alternative to MANGOHUD_DLSYM=1
  • MangoHud now comes with a man page man mangohud
  • Added support for KDE neon in build script
  • output_file is now replaced by output_folder, the files are automatically named after the programs executable
  • By pressing Shift_L+F3 you will automatically upload the latest log file to Flightlessmango.com and open up said benchmark. To upload all logs for this session, the default keybind is Control_L=F3. Both of these require that you set the permit_upload param to 1 and output_folder
  • Added supported for more glyph ranges

Parameters

Options Description
media_player_order Media player metadata field order. Defaults to title,artist,album.
media_player_name Not setting this value shows info from any MPRIS player
permit_upload Allow uploading of logs to Flightlessmango.com, default is 0
upload_log Change keybind for uploading log
font_file_text Change text font. Otherwise font_file is used
font_size_text= Customizeable font size for other text like media metadata (default=24)
font_scale= Set global font scale (default=1.0)
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.
benchmark_percentiles Choose what percentiles you want to show in the quick benchmark e.g. benchmark_percentiles=AVG+0.1+97+95. Defaults to 97+AVG+1+0.1 (Thanks @kingdom5500)
wine Shows current Wine or Proton version in use (Thanks @gort818)
wine_color Change color of the wine/proton text
output_folder Specify folder where logs are saved output_folder=/tmp
MangoHud - MangoHud Version 0.4.1

Published by flightlessmango over 4 years ago

Bug fixes

  • Width was not being set correctly without io_read or write
  • Hopefully fixed CPU temperature for Core 2 Duo CPUs
MangoHud - MangoHud Version 0.4.0

Published by flightlessmango over 4 years ago

Features

Logging

Logging is now indicated by a red circle at the top right of the hud

Quick benchmark

You no longer need to add a output_file to use the logging button, it just won't produce a file.
When logging finishes it will show a window of quick stats of the session
average, 97th percentile, 1% low and an FPS graph

Keybinds

Keybinds can now use modifiers. You can set a combination with + as a delimiter.
toggle_hud=Shift_L+F12
Default keybinds have been changed accordingly
toggle_logging=Shift_L+F2
reload_cfg=Shift_L+F4
toggle_hud=Shift_R+F12

Parameters

Options Description
top-center position=top-center
vulkan_driver Displays used vulkan driver, radv/amdgpu-pro/amdvlk
gpu_name GPU name from pci.ids
media_player_color Change color
media_player_name Change default player
font_scale_media_player Change size of media player text relative to font_size
histogram Change FPS graph to histogram
cpu_text, gpu_text Override GPU and CPU text
gpu_power GPU draw in watts
log_interval Set the interval the log saves data, default 100

Changes

  • Removed the crosshair option. This is a grey area and not what MangoHud is about.
  • The mangohud command now loads 64 and 32bit libs, removing the need for mangohud.x86 unless you only have 32bit installed.

Bug Fixes

  • Fixed issue where MangoHud would cause Minecraft to crash
  • Fixed issue where Lutris would crash if started with MangoHud
  • Fixed issue where Final Fantasy XIV would not start if run with MangoHud
MangoHud - MangoHud Version 0.3.5

Published by flightlessmango over 4 years ago

New Features

Added XNVctrl as a fall back, this will allow older Nvidia devices to view gpu load etc.
Added a blacklist

Bug Fixes

Fixed bug causing games to crash when changing the config
Fixed a number of issues with displaying the hud in OpenGL
Fixed bug where fps_limit could not be changed to 0 while running
Fixed bug where the text would be slightly distorted in OpenGL

Params

Options Usage in MANGOHUD_CONFIG=
arch Displays 32/64bit
media_player Displays current spotify song
pci_dev Select GPU device in multi-gpu setups
version Display current mangohud version

Environment Variables

Env var Usage
MANGOHUD_DLSYM MANGOHUD_DLSYM=1 Certain OpenGL games may need this to properly load mangohud

License

Removed license disclaimer for meson.build and param files as they do not apply.

MangoHud - MangoHud Version 0.3.1

Published by flightlessmango over 4 years ago

Fixed installer

Minor Changes

Config now auto reloads when modified
Displaying Vulkan and OpenGL version

Bug Fixes

Fixed a bug where it would incorrectly state that the engine was OpenGL
Fixed Supertuxkart crashing on startup
Fixed Minecraft crashing on startup
Fixed a bug that would cause a crash when no cpu temp sensor was found
Don't use glibc private api __libc_dlsym
Try to guess display size with OpenGL (GL_VIEWPORT or GL_SCISSOR_BOX). Resize window if HUD is still in wrong position.

MangoHud - MangoHud Version 0.3.0

Published by flightlessmango over 4 years ago

Fixed installer

New Major Features

  • OpenGL Support
    MangoHud can now be used with OpenGL apps, native and wined3d.
  • Running MangoHud
    You can now use the command mangohud to load either the OpenGL or Vulkan hud
    mangohud.x86 for 32bit OpenGL
  • mangohud vkcube
  • mangohud glxgears
    You can still load just the vulkan hud with MANGOHUD=1

New Hud Features

Options Usage in MANGOHUD_CONFIG=
IO read and write for the app, not system. io_readio_write
Vsync for OpenGL gl_vsync
GPU Core and Memory clock gpu_core_clockgpu_mem_clock
Alpha of all text and frametime graph alpha=1.0
Change the time format time_format=
Read config together with MANGOHUD_CONFIG read_cfg as first parameter
Change keybind for refreshing config reload_cfg=F4
Set amount of time in second that the logging will run for log_duration

OpenGL Vsync

  • -1 Adaptive sync
  • 0 Off
  • 1 On

Environment Variables

MANGOHUD_OUTPUT and MANGOHUD_FONT are now config params instead

output_file font_file

Added params to change colors of hud elements

MANGOHUD_CONFIG=gpu_color=RRGGBB

Options Default color
text_color #ffffff #ffffff
gpu_color #2e9762 #2e9762
cpu_color #2e97cb #2e97cb
vram_color #ad64c1 #ad64c1
ram_color #c26693 #c26693
engine_color #eb5b5b #eb5b5b
io_color #a491d3 #a491d3
frametime_color #00ff00 #00ff00
background_color #020202 #020202

Time Formatting

time_format = %H:%M
time_format = [ %T %F ]
time_format = %X # locally formatted time, because of limited glyph range, missing characters may show as '?' (e.g. japanese)

Keybinds

F4 Reload the config file

Bug Fixes

  • Fixed bug that caused crashing on Nvidia with the full param
  • Fixed mpv crashing when used with vulkan
  • Fixed issue where the install script would bork the .json file
  • offset_x and offset_y can now be negative values

Credits

@flightlessmango @jackun @telans

MangoHud - MangoHud Version 0.2.0

Published by telans over 4 years ago

layer_gif

New Major Features

  • Configuration files
    • You can now use a config file to set your MANGOHUD_CONFIG options globally or per application. Automatically copied with the install script to $HOME/.config/MangoHud/MangoHud.conf which then will not be overwritten. An up to date default version can always be found at $HOME/.local/share/MangoHud/MangoHud.conf or within this repo.
    • The priorities for application/global config files are as follows:
      • 1: /path/to/application/dir/MangoHud.conf
      • 2: $HOME/.config/MangoHud/{wine-}{application_name}.conf
      • 3: $HOME/.config/MangoHud/MangoHud.conf
      • 4: $HOME/.local/share/MangoHud/MangoHud.conf
    • However, the MANGOHUD_CONFIG environment variable overrides any config file.
  • FPS limiting
    • You can now limit the fps of an application with fps_limit. See the table below for usage.
  • VSync options
    • It is now possible to force VSync on or off for an application. This includes four different VSync states:
      • 0 = Adaptive VSync
      • 1 = Off
      • 2 = Mailbox (VSync with uncapped FPS)
      • 3 = On
    • See VkPresentModeKHR(3) for details.

New Hud Features

Options Usage in MANGOHUD_CONFIG=
Ability to display RAM & VRAM usage ramvram
Application FPS limiter fps_limit=x
Vsync (Options 0-3)- 0 = Adaptive- 1 = Off- 2 = Mailbox (VSync with uncapped FPS)- 3 = On vsync=x
Display the system time time
Crosshair overlay (Yes, this is semi-controversial) crosshaircrosshair_size=xcrosshair_color=RRGGBB
Modifiable hud / logging toggle keybinds toggle_hud=F1toggle_logging=F3
Hud position offset offset_x=xoffset_y=x
Enable all hud options except for crosshair full
Disable / hide the hud by default no_display
Hud background transparency (0.0-1.0) background_alpha=x
Disable CPU / GPU usage indicators gpu_statscpu_stats

Other Changes / Fixes

  • Fixed a bug preventing GPU stats from showing in Feral ports / Feral3D titles.
  • Removed unneeded git submodules
  • Added "Frametime" label next to graph
  • Fixed some potential application crashes
  • Fixed varous ImGui styling issues
  • Added support for "Zorin OS" and "Pop!_OS" within the build script
  • General code formatting
  • Fixed an issue with the previous release package not working on some Ubuntu 18.04 systems

Credits

@flightlessmango, @jackun, @telans, @guihkx, @DadSchoorse, @DanySpin97

MangoHud - MangoHud Version 0.1.0

Published by telans over 4 years ago

This is the first release of MangoHud!

MangoHud is a Vulkan overlay layer intending to be an alternative to the Mesa Vulkan overlay layer, and the DXVK hud. MangoHud works with any GPU capable of running Vulkan.

layer_gif


Features

  • FPS and Frametime display.
  • GPU and CPU utilization - per core or just the average.
  • GPU and CPU temperature reporting.
  • Vulkan engine reporting (DXVK, Feral, etc)
  • Logging capabilities
    • Records FPS, CPU & GPU utilization.
    • Outputs to a log file of your choosing with the environment variable MANGOHUD_OUTPUT (required)
    • Use F2 to start and stop logging.
  • Ability to change the font to your liking with MANGOHUD_FONT. Must point to a TTF or OTF file.
  • Moveable & resizeable hud - see MANGOHUD_CONFIG in the README.
  • Ability to disable/enable the hud with the F12 key.
  • Now standalone from Mesa! Read below for details.

Recently Changed

As of a few days ago, MangoHud was a fork from Mesa with the overlay files modified to produce the hud. We have managed to serperate the hud from Mesa to give it it's own repository here.

This cuts compile times significantly, which is great if you wish to compile the hud yourself.

Installation

You can download the attached release and simply run the included ./install.sh.

Run MangoHud by using the environment variable MANGOHUD=1.

Alternatively, you can build this yourself to stay on top of all changes by cloning the repository and running ./build.sh install. Instructions are in the README here.

Suggestions / Contributions

Any suggestions or changes for features you might have are greatly appreciated, we will try our best to incorporate them. If anyone runs into any issues, please file a bug report.

Credits

Special thanks to @telans and @jackun . Without their help this release would not have been possible.