MangoHud/README.md

184 lines
9.2 KiB
Markdown
Raw Normal View History

# MangoHud
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more.
2020-02-04 11:00:15 +00:00
#### Example:
![](assets/overlay_example.gif)
# Installation
2020-01-28 07:39:49 +00:00
## Build
2020-02-04 10:30:40 +00:00
If you wish to compile MangoHud to keep up to date with any changes - first clone this repository and cd into it:
2020-01-28 07:39:49 +00:00
```
git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git
cd MangoHud
```
2020-01-28 07:39:49 +00:00
To build it, execute:
2020-01-28 07:39:49 +00:00
```
./build.sh build
./build.sh package
```
**NOTE: If you are running an Ubuntu-based, Arch-based, Fedora-based, or openSUSE-based distro, the build script will automatically detect and prompt you to install missing build dependencies. If you run into any issues with this please report them!**
Once done, proceed to the [installation](#source).
## Install
2020-02-04 10:30:40 +00:00
### Source
If you have compiled MangoHud from source, to install it, execute:
```
./build.sh install
```
2020-02-04 10:30:40 +00:00
### Pre-packaged binaries
2020-02-20 15:31:30 +00:00
#### GitHub releases
2020-02-20 15:31:30 +00:00
If you do not wish to compile anything, simply download the file under [Releases](https://github.com/flightlessmango/MangoHud/releases), extract it, and run `./mangohud-setup.sh install` from within the extracted folder.
#### Arch-based distributions
2020-03-14 18:54:07 +00:00
If you are using an Arch-based distribution, install [`mangohud`](https://aur.archlinux.org/packages/mangohud/) and [`lib32-mangohud`](https://aur.archlinux.org/packages/lib32-mangohud/) with your favourite AUR helper. [`mangohud-git`](https://aur.archlinux.org/packages/mangohud-git/) and [`lib32-mangohud-git`](https://aur.archlinux.org/packages/lib32-mangohud-git/) are also available on the AUR if you want the up-to-date version of MangoHud.
#### Fedora
If you are using Fedora, to install the [MangoHud](https://src.fedoraproject.org/rpms/mangohud) package, execute:
```
sudo dnf install mangohud
```
2020-02-23 12:45:07 +00:00
2020-03-14 19:00:16 +00:00
#### Flatpak
2020-03-14 18:56:08 +00:00
2020-03-15 11:45:01 +00:00
If you are using Flatpaks, you will have to add the [Flathub repository](https://flatpak.org/setup/) for your specific distribution, and then, to install it, execute:
2020-03-14 18:56:08 +00:00
2020-03-15 11:45:01 +00:00
##### For Steam flatpak
2020-03-14 18:56:08 +00:00
```
2020-03-23 13:11:20 +00:00
flatpak install com.valvesoftware.Steam.Utility.MangoHud
2020-03-14 18:56:08 +00:00
```
2020-03-15 11:45:01 +00:00
To enable MangoHud for all Steam games:
```
flatpak override --user --env=MANGOHUD=1 com.valvesoftware.Steam
```
2020-03-14 18:56:08 +00:00
# Normal usage
To enable the MangoHud overlay layer for 64bit Vulkan and OpenGL, run :
`mangohud /path/to/app`
Or
`mangohud.x86 /path/to/app` for 32bit OpenGL
For Steam games, you can add this as a launch option:
`mangohud %command%`
Or alternatively, add `MANGOHUD=1` to your shell profile (Vulkan only).
Some linux native games overrides LD_PRELOAD and stopping MangoHud from working. You can sometimes fix this by editing LD_PRELOAD in the start script
`LD_PRELOAD=/path/to/mangohud/lib/`
2020-02-12 22:17:32 +00:00
## Hud configuration
MangoHud comes with a config file which can be used to set configuration options globally or per application. The priorities of different config files are:
1. `/path/to/application/dir/MangoHud.conf`
2. `$HOME/.config/MangoHud/{application_name}.conf`
3. `$HOME/.config/MangoHud/MangoHud.conf`
2020-03-14 16:12:58 +00:00
You can find an example config in /usr/share/doc/mangohud
2020-02-12 22:17:32 +00:00
2020-04-15 05:24:57 +00:00
[GOverlay](https://github.com/benjamimgois/goverlay) is a GUI application that can be used to manage the config
2020-02-12 22:17:32 +00:00
---
### `MANGOHUD_CONFIG` and `MANGOHUD_CONFIGFILE` environment variables
2020-02-12 22:17:32 +00:00
You can also customize the hud by using the `MANGOHUD_CONFIG` environment variable while separating different options with a comma. This takes priority over any config file.
You can also specify configuration file with `MANGOHUD_CONFIGFILE=/path/to/config` for applications whose names are hard to guess (java, python etc).
2020-02-12 22:17:32 +00:00
A partial list of parameters are below. See the config file for a complete list.
| Variable | Description |
|------------------------------------|---------------------------------------------------------------------------------------|
| `cpu_temp`<br>`gpu_temp` | Displays current CPU/GPU temperature |
| `core_load` | Displays load & frequency per core |
2020-05-03 15:45:07 +00:00
| `gpu_core_clock`<br>`gpu_mem_clock`| Displays GPU core/memory frequency |
2020-02-12 22:17:32 +00:00
| `ram`<br>`vram` | Displays system RAM/VRAM usage |
| `full` | Enables all of the above config options |
| `crosshair` | Adds a crosshair overlay at the centre of the screen |
| `font_size=` | Customizeable font size (default=24) |
| `width=`<br>`height=` | Customizeable hud dimensions (in pixels) |
2020-05-17 15:59:14 +00:00
| `position=` | Location of the hud: `top-left` (default), `top-right`, `bottom-left`, `bottom-right`, `top-center` |
2020-05-02 16:40:24 +00:00
| `offset_x` `offset_y` | Hud position offsets |
2020-02-12 22:17:32 +00:00
| `no_display` | Hide the hud by default |
| `toggle_hud=`<br>`toggle_logging=` | Modifiable toggle hotkeys. Default are F12 and F2, respectively. |
2020-05-17 12:45:31 +00:00
| `reload_cfg=` | Change keybind for reloading the config. Default = `Shift_L+F4` |
2020-03-02 21:01:47 +00:00
| `time`<br>`time_format=%T` | Displays local time. See [std::put_time](https://en.cppreference.com/w/cpp/io/manip/put_time) for formatting help. |
| `gpu_color`<br>`gpu_color`<br>`vram_color`<br>`ram_color`<br>`io_color`<br>`engine_color`<br>`frametime_color`<br>`background_color`<br>`text_color`<br>`media_player_color` | Change default colors: `gpu_color=RRGGBB`|
| `alpha` | Set the opacity of all text and frametime graph `0.0-1.0` |
| `background_alpha` | Set the opacity of the background `0.0-1.0` |
2020-03-13 13:40:37 +00:00
| `read_cfg` | Add to MANGOHUD_CONFIG as first parameter to also load config file. Otherwise only MANGOHUD_CONFIG parameters are used. |
| `output_file` | Define name and location of the output file (Required for logging) |
| `font_file` | Change default font (set location to .TTF/.OTF file ) |
| `log_duration` | Set amount of time the logging will run for (in seconds) |
2020-03-13 16:16:17 +00:00
| `vsync`<br> `gl_vsync` | Set vsync for OpenGL or Vulkan |
| `media_player` | Show media player metadata |
| `media_player_name` | Set main media player DBus service name without the `org.mpris.MediaPlayer2` part, like `spotify`, `vlc`, `audacious` or `cantata`. Defaults to `spotify`. |
2020-05-02 17:23:07 +00:00
| `io_read`<br> `io_write` | Show non-cached IO read/write, in MiB/s |
2020-05-02 14:49:38 +00:00
| `pci_dev` | Select GPU device in multi-gpu setups |
2020-05-02 16:40:24 +00:00
| `version` | Shows current mangohud version |
2020-05-03 19:08:12 +00:00
| `fps_limit` | Limit the apps framerate |
2020-05-03 15:45:07 +00:00
| `arch` | Show if the application is 32 or 64 bit |
2020-05-24 15:18:12 +00:00
| `histogram` | Change fps graph to histogram |
Example: `MANGOHUD_CONFIG=cpu_temp,gpu_temp,position=top-right,height=500,font_size=32`
Note: Width and Height are set automatically based on the font_size, but can be overridden.
## Vsync
### OpenGL Vsync
- `-1` = Adaptive sync
- `0` = Off
- `1` = On
2020-03-13 16:07:57 +00:00
- `n` = Sync to refresh rate / n.
### Vulkan Vsync
- `0` = Adaptive VSync (FIFO_RELAXED_KHR)
- `1` = Off (IMMEDIATE_KHR)
- `2` = Mailbox (VSync with uncapped FPS) (MAILBOX_KHR)
- `3` = On (FIFO_KHR)
All vulkan vsync options might not be supported on your device, you can check what your device supports here [vulkan.gpuinfo.org](https://vulkan.gpuinfo.org/listsurfacepresentmodes.php?platform=linux)
## Keybindings
2020-01-28 07:39:49 +00:00
- `F2` : Toggle Logging
2020-03-13 13:57:11 +00:00
- `F4` : Reload Config
- `F12`: Toggle Hud
2020-01-28 07:39:49 +00:00
## MangoHud FPS logging
When you toggle logging (using the keybind `F2`), a file is created with your chosen name (using `MANGOHUD_OUTPUT`) plus a date & timestamp.
This file can be uploaded to [Flightlessmango.com](https://flightlessmango.com/games/user_benchmarks) to create graphs automatically.
you can share the created page with others, just link it.
#### Multiple log files
It's possible to upload multiple files when using [Flightlessmango.com](https://flightlessmango.com/games/user_benchmarks). You can rename them to your preferred names and upload them in a batch.
These filenames will be used as the legend in the graph.
#### Log uploading walkthrough
![](assets/log_upload_example.gif)