A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
MIT License
Bot releases are hidden (Show)
Published by flightlessmango almost 4 years ago
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 |
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 |
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 |
frame_timing
ms to above the graph instead of beside,
:
and +
are now acceptableIt'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 |
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 |
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 |
frame_timing
ms to above the graph instead of beside,
:
and +
are now acceptablePublished by flightlessmango about 4 years ago
mangohud --dlsym
as an alternative to MANGOHUD_DLSYM=1
man mangohud
KDE neon
in build scriptoutput_file
is now replaced by output_folder
, the files are automatically named after the programs executableShift_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
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
|
Published by flightlessmango about 4 years ago
mangohud --dlsym
as an alternative to MANGOHUD_DLSYM=1
man mangohud
KDE neon
in build scriptoutput_file
is now replaced by output_folder
, the files are automatically named after the programs executableShift_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
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
|
Published by flightlessmango over 4 years ago
Published by flightlessmango over 4 years ago
Logging is now indicated by a red circle at the top right of the hud
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 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
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
|
mangohud
command now loads 64 and 32bit libs, removing the need for mangohud.x86
unless you only have 32bit installed.Published by flightlessmango over 4 years ago
Added XNVctrl as a fall back, this will allow older Nvidia devices to view gpu load etc.
Added a blacklist
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
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 |
Env var | Usage | |
---|---|---|
MANGOHUD_DLSYM | MANGOHUD_DLSYM=1 | Certain OpenGL games may need this to properly load mangohud |
Removed license disclaimer for meson.build and param files as they do not apply.
Published by flightlessmango over 4 years ago
Config now auto reloads when modified
Displaying Vulkan and OpenGL version
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.
Published by flightlessmango over 4 years ago
mangohud
to load either the OpenGL or Vulkan hudmangohud.x86
for 32bit OpenGLmangohud vkcube
mangohud glxgears
MANGOHUD=1
Options | Usage in MANGOHUD_CONFIG=
|
---|---|
IO read and write for the app, not system. |
io_read io_write
|
Vsync for OpenGL | gl_vsync |
GPU Core and Memory clock |
gpu_core_clock gpu_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 |
-1
Adaptive sync0
Off1
OnMANGOHUD_OUTPUT and MANGOHUD_FONT are now config params instead
output_file
font_file
MANGOHUD_CONFIG=gpu_color=RRGGBB
Options | Default color |
---|---|
text_color |
#ffffff
|
gpu_color |
#2e9762
|
cpu_color |
#2e97cb
|
vram_color |
#ad64c1
|
ram_color |
#c26693
|
engine_color |
#eb5b5b
|
io_color |
#a491d3
|
frametime_color |
#00ff00
|
background_color |
#020202
|
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)
F4
Reload the config file
full
paramoffset_x
and offset_y
can now be negative values@flightlessmango @jackun @telans
Published by telans over 4 years ago
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./path/to/application/dir/MangoHud.conf
$HOME/.config/MangoHud/{wine-}{application_name}.conf
$HOME/.config/MangoHud/MangoHud.conf
$HOME/.local/share/MangoHud/MangoHud.conf
MANGOHUD_CONFIG
environment variable overrides any config file.fps_limit
. See the table below for usage.0
= Adaptive VSync1
= Off2
= Mailbox (VSync with uncapped FPS)3
= OnOptions | Usage in MANGOHUD_CONFIG=
|
---|---|
Ability to display RAM & VRAM usage |
ram vram
|
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) |
crosshair crosshair_size=x crosshair_color=RRGGBB
|
Modifiable hud / logging toggle keybinds |
toggle_hud=F1 toggle_logging=F3
|
Hud position offset |
offset_x=x offset_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_stats cpu_stats
|
@flightlessmango, @jackun, @telans, @guihkx, @DadSchoorse, @DanySpin97
Published by telans over 4 years ago
MANGOHUD_OUTPUT
(required)MANGOHUD_FONT
. Must point to a TTF or OTF file.MANGOHUD_CONFIG
in the README.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.
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.
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.
Special thanks to @telans and @jackun . Without their help this release would not have been possible.