flightlessmango/MangoHud
GitHub: flightlessmango/MangoHud
一个用于实时监控并显示图形应用(如游戏)性能指标(FPS、温度、负载等)的 Vulkan/OpenGL 覆盖层工具。
Stars: 8567 | Forks: 397
# MangoHud
一个用于监控 FPS、温度、CPU/GPU 负载等信息的 Vulkan 和 OpenGL 覆盖层。

- [MangoHud](#mangohud)
- [安装说明 - 从源码构建](#installation---build-from-source)
- [依赖项](#dependencies)
- [使用构建脚本构建](#building-with-build-script)
- [安装说明 - 预编译二进制文件](#installation---pre-packaged-binaries)
- [GitHub 发布版](#github-releases)
- [基于 Arch 的发行版](#arch-based-distributions)
- [Debian, Ubuntu](#debian-ubuntu)
- [Fedora](#fedora)
- [Solus](#solus)
- [openSUSE](#opensuse)
- [Flatpak](#flatpak)
- [正常使用](#normal-usage)
- [OpenGL](#opengl)
- [Hud 配置](#hud-configuration)
- [环境变量:**`MANGOHUD_CONFIG`**、**`MANGOHUD_CONFIGFILE`** 和 **`MANGOHUD_PRESETSFILE`**](#environment-variables)
- [Vsync](#vsync)
- [OpenGL Vsync](#opengl-vsync)
- [Vulkan Vsync](#vulkan-vsync)
- [按键绑定](#keybindings)
- [变通方法](#workarounds)
- [FPS 日志记录](#fps-logging)
- [在线可视化:FlightlessMango.com](#online-visualization-flightlessmangocom)
- [本地可视化:`mangoplot`](#local-visualization-mangoplot)
- [各 GPU 厂商/驱动的指标支持](#metrics-support-by-gpu-vendordriver)
## 安装说明 - 从源码构建
如果您希望编译 MangoHud 以随时跟进任何更改 - 首先克隆此仓库并进入该目录:
```
git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git
cd MangoHud
```
使用 `meson` 进行“手动”安装:
```
meson build
ninja -C build install
```
默认情况下,meson 会将 MangoHud 安装到 `/usr/local`。如果需要,可以使用 `--prefix=/usr` 指定安装前缀。
如果需要,向 meson 添加 `-Dappend_libdir_mangohud=false` 选项,以防止将 `mangohud` 附加到 libdir(例如 /usr/local/lib/mangohud)。
要在 64 位发行版上安装 32 位版本,请指定适当的 `libdir`:Arch 使用 `lib32`,基于 Debian 的发行版使用 `lib/i386-linux-gnu`。基于 RPM 的发行版通常将 32 位库安装到 `/usr/lib`,将 64 位库安装到 `/usr/lib64`。
您可能需要更改 `PKG_CONFIG_PATH` 以指向适合您发行版的正确文件夹。
```
CC="gcc -m32" \
CXX="g++ -m32" \
PKG_CONFIG_PATH="/usr/lib32/pkgconfig:/usr/lib/i386-linux-gnu/pkgconfig:/usr/lib/pkgconfig" \
meson build32 --libdir lib32
ninja -C build32 install
```
### 依赖项
安装必要的开发包。
- gcc, g++
- 或者用于 32 位支持的 gcc-multilib, g++-multilib
- meson >=0.54
- ninja (ninja-build)
- glslang
- libGL/libEGL (libglvnd, mesa-common-dev, mesa-libGL-devel 等)
- X11 (libx11-dev)
- XNVCtrl (libxnvctrl-dev),可选,使用 `meson` 的 `-Dwith_xnvctrl=disabled` 选项来禁用
- D-Bus (libdbus-1-dev),可选,使用 `meson` 的 `-Dwith_dbus=disabled` 选项来禁用
- wayland-client
- xkbcommon
Python 3 库:
- Mako (python3-mako 或使用 `pip` 安装)
如果发行版打包的 `meson` 版本过旧并导致构建错误,请使用 `pip` (`python3-pip`) 安装更新的版本。
### Meson 选项
| 选项 | 默认值 | 描述
| -------- | ------- | -
| with_nvml | enabled |在 wayland 上获取 NVIDIA GPU 指标所需
| with_xnvctrl | enabled |在较旧的 GPU 上获取 NVIDIA GPU 指标所需
| with_x11 | enabled |在 x11 上使用按键绑定所需
| with_wayland | enabled |在 wayland 上使用按键绑定所需
| with_dbus | enabled |使用媒体功能所需
| mangoapp | false |包含 mangoapp
| mangohudctl | false |包含 mangohudctl
| tests | auto |包含测试
| mangoplot | true |包含 mangoplot
### 使用构建脚本构建
您也可以使用 `build.sh` 脚本自动执行某些操作,例如在支持的发行版上安装依赖项,但它通常假定您运行在 x86_64 架构上。
要仅进行构建,请执行:
```
./build.sh build
```
您也可以向 meson 传递参数:
```
./build.sh build -Dwith_xnvctrl=disabled
```
生成的文件将被安装到 `./build/release` 文件夹中。
如果您已经从源码编译了 MangoHud,要安装它,请执行:
```
./build.sh install
```
然后您可以通过以下命令随后卸载 MangoHud
```
./build.sh uninstall
```
要将生成的二进制文件打包并创建带有安装脚本的发布压缩包,请执行:
```
./build.sh package release
```
或者组合这些命令,尽管如果 `package` 找不到已构建的库,它也应该会调用 `build`:
```
./build.sh build package release
```
如果您之前构建过 MangoHud 并且突然失败了,您可以尝试清理 `build` 文件夹,执行:
```
./build.sh clean
```
目前它只会执行 `rm -fr build` 并清除子项目。
__注意:如果您运行的是基于 Ubuntu、Arch、Fedora 或 openSUSE 的发行版,构建脚本将自动检测并提示您安装缺失的构建依赖项。如果您在此过程中遇到任何问题,请报告它们!__
## 安装说明 - 预编译二进制文件
### GitHub 发布版
如果您不想编译任何内容,只需下载 [Releases](https://github.com/flightlessmango/MangoHud/releases) 下的文件,将其解压,并在终端中从解压后的文件夹内执行:
```
./mangohud-setup.sh install
```
### 基于 Arch 的发行版
如果您使用的是基于 Arch 的发行版,请从 `extra`/`multilib` 仓库安装 [`mangohud`](https://archlinux.org/packages/extra/x86_64/mangohud/) 和 [`lib32-mangohud`](https://archlinux.org/packages/multilib/x86_64/lib32-mangohud/)。AUR 上提供有 [`mangohud-git`](https://aur.archlinux.org/packages/mangohud-git/) 和 [`lib32-mangohud-git`](https://aur.archlinux.org/packages/lib32-mangohud-git/),可以通过您喜欢的 AUR 助手进行安装。这些版本可以帮助解决在使用 pacman 的稳定版本时 hud 无法激活的问题!
如果您要自行构建,则需要通过编辑 pacman 配置来启用 multilib 仓库:
```
sudo nano /etc/pacman.conf
```
并取消注释:
```
#[multilib]
#Include = /etc/pacman.d/mirrorlist
```
然后保存文件并执行:
```
sudo pacman -Syy
```
### Debian, Ubuntu
如果您使用的是 Debian 11 (Bullseye) 或更高版本、Ubuntu 21.10 (Impish) 或更高版本,或者由它们派生的发行版,要安装 [MangoHud](https://tracker.debian.org/pkg/mangohud) 软件包,请执行:
```
sudo apt install mangohud
```
或者,如果您还需要将 MangoHud 用于 32 位应用程序,
在 Debian 上您可以执行:
```
sudo apt install mangohud:i386
```
Ubuntu 上不提供 32 位软件包。
### Fedora
如果您使用的是 Fedora,要安装 [MangoHud](https://src.fedoraproject.org/rpms/mangohud) 软件包,请执行:
```
sudo dnf install mangohud
```
### Solus
如果您使用的是 Solus,要安装 [MangoHud](https://dev.getsol.us/source/mangohud/) 只需执行:
```
sudo eopkg it mangohud
```
### openSUSE
如果您运行的是 openSUSE Leap 或 Tumbleweed,您可以从官方仓库获取 Mangohud。
有两个软件包,用于 64 位的 [mangohud](https://software.opensuse.org/package/mangohud) 和用于 32 位应用程序支持的 [mangohud-32bit](https://software.opensuse.org/package/mangohud-32bit)。
为了让 Mangohud 同时在 32 位和 64 位应用程序上工作,即使是在 64 位操作系统上,您也需要安装这两个软件包。
```
sudo zypper in mangohud mangohud-32bit
```
Leap 似乎没有 32 位软件包。
Leap 15.2
```
sudo zypper addrepo -f https://download.opensuse.org/repositories/games:tools/openSUSE_Leap_15.2/games:tools.repo
sudo zypper install mangohud
```
Leap 15.3
```
sudo zypper addrepo -f https://download.opensuse.org/repositories/games:tools/openSUSE_Leap_15.3/games:tools.repo
sudo zypper install mangohud
```
### Flatpak
如果您使用的是 Flatpaks,您必须为您的特定发行版添加 [Flathub 仓库](https://flatpak.org/setup/),然后,要安装它,请执行:
对于 flatpak:
```
flatpak install org.freedesktop.Platform.VulkanLayer.MangoHud
```
要为所有 Steam 游戏启用 MangoHud:
```
flatpak override --user --env=MANGOHUD=1 com.valvesoftware.Steam
```
## 正常使用
要为 Vulkan 和 OpenGL 启用 MangoHud 覆盖层,请运行:
`mangohud /path/to/app`
对于 Lutris 游戏,转到 Lutris 中的系统选项(确保已启用高级选项)并将其添加到 `Command prefix` 设置中:
`mangohud`
对于 Steam 游戏,您可以将其添加为启动选项:
`mangohud %command%`
或者,将 `MANGOHUD=1` 添加到您的 shell 配置文件中(仅限 Vulkan)。
## OpenGL
OpenGL 游戏可能还需要 `dlsym` 钩子,该功能现已默认启用。将 `MANGOHUD_DLSYM` 环境变量设置为 `0` 即可禁用,例如在 Steam 中使用 `MANGOHUD_DLSYM=0 %command%`。
一些 Linux 原生的 OpenGL 游戏会覆盖 LD_PRELOAD,导致 MangoHud 停止工作。有时您可以通过在启动脚本中编辑 LD_PRELOAD 来解决此问题
`LD_PRELOAD=/path/to/mangohud/lib/`
## gamescope
要使用 gamescope 启用 mangohud,您需要安装 mangoapp。
`gamescope --mangoapp -- %command%`
不支持在 gamescope 中使用普通的 mangohud。
## Hud 配置
MangoHud 附带一个配置文件,可用于全局或针对每个应用程序设置配置选项。通常它会作为 `/usr/share/doc/mangohud/MangoHud.conf.example` 安装,或者[从这里获取副本](https://raw.githubusercontent.com/flightlessmango/MangoHud/master/data/MangoHud.conf)。
不同配置文件的优先级是:
1. `/path/to/application/dir/MangoHud.conf`
2. ~/.config/MangoHud 中的每个应用程序配置:
1. `~/.config/MangoHud/.conf` 用于原生应用程序,其中 `` 是可执行文件区分大小写的名称
2. `~/.config/MangoHud/wine-.conf` 用于 wine/proton 应用程序,其中 `` 是不带 `.exe` 后缀且区分大小写的可执行文件名称
3. `~/.config/MangoHud/MangoHud.conf`
示例:对于《守望先锋》,配置文件应为 `wine-Overwatch.conf`(即使您从 Lutris 运行的可执行文件是 `Battle.net.exe`,实际的游戏可执行文件名称是 `Overwatch.exe`)。
如果您在启用 MangoHud 的情况下从终端启动游戏(例如通过从终端启动 Lutris),MangoHud 将打印它正在查找的配置文件名。
您可以在 /usr/share/doc/mangohud 中找到示例配置
[GOverlay](https://github.com/benjamimgois/goverlay) 是一个 GUI 应用程序,可用于管理配置
### 环境变量
您还可以通过使用 `MANGOHUD_CONFIG` 环境变量来自定义 hud,并用逗号分隔不同的选项。此设置的优先级高于任何配置文件。
您还可以使用 `MANGOHUD_CONFIGFILE=/path/to/config` 为名称难以猜测的应用程序(java、python 等)指定配置文件。
您还可以使用 `MANGOHUD_PRESETSFILE=/path/to/config` 指定预设文件。这在 flatpak 等沙盒中运行 mangohud 时尤其有用。
您还可以使用 `MANGOHUD_OPENGL_LIBS=/path/to/libMangoHud_opengl.so` 为 OpenGL 指定自定义 hud 库。这对于在不修改系统上安装的 MangoHud 的情况下进行测试很有用。
以下是部分参数列表。有关完整列表,请参见配置文件。
默认启用的参数必须被显式禁用。这些(当前)包括 `fps`、`frame_timing`、`cpu_stats`(cpu 负载)、`gpu_stats`(gpu 负载),并且可以通过将相应的变量设置为 0(例如 fps=0)来禁用它们。
| 变量 | 描述 |
|------------------------------------|---------------------------------------------------------------------------------------|
| `af` | 各向异性过滤级别。提高以角度观察纹理的清晰度 `0`-`16` |
| `alpha` | 设置所有文本和帧时间图的不透明度 `0.0`-`1.0` |
| `arch` | 显示应用程序是 32 位还是 64 位 |
| `autostart_log=` | 在 mangohud 初始化 X 秒后开始记录日志 |
| `background_alpha` | 设置背景的不透明度 `0.0`-`1.0` |
| `battery_color` | 更改电池文本颜色 |
| `battery_icon` |电池图标代替百分比 |
| `battery_watt` | 显示电池选项的瓦数 |
| `battery_time` | 显示电池选项的剩余时间 |
| `battery` | 显示当前电池百分比和能耗 |
| `benchmark_percentiles` | 配置在日志摘要中显示哪些帧率百分位数。默认为 `97,AVG,1,0.1` |
| `bicubic` | 强制双三次过滤 |
| `blacklist` | 将程序添加到黑名单。例如 `blacklist=vkcube,WatchDogs2.exe` |
| `cellpadding_y` | 设置垂直内边距,默认为 `-0.085` |
| `control=` | 设置一个具有特定名称的 unix 套接字,可以使用 mangohud-control 连接。
例如 `control=mangohud` 或 `control=mangohud-%p`(`%p` 将被替换为进程 ID) | | `core_load_change` | 更改 CPU 核心负载的颜色,使用与 `cpu_load_value` 和 `cpu_load_change` 相同的数据 | | `core_load` | 显示每个核心的负载和频率 | | `core_type` | 显示每个核心的 CPU 核心类型。对于 Intel,它显示哪些核心是性能核和能效核;对于 ARM,它显示核心代号,如 A52、A53、A76 等... | | `core_bars` | 将 `core_load` 的显示从数字更改为垂直条 | | `cpu_load_change` | 根据负载更改 CPU 负载的颜色 | | `cpu_load_color` | 设置 GPU 负载变化低、中和高的颜色。例如 `cpu_load_color=0000FF,00FFFF,FF00FF` | | `cpu_load_value` | 设置中等和高负载的值,例如 `cpu_load_value=50,90` | | `cpu_mhz` | 显示 CPU 当前的 MHz | | `cpu_power`
`gpu_power` | 显示 CPU/GPU 功耗(瓦) | | `cpu_temp`
`gpu_temp`
`gpu_junction_temp`
`gpu_mem_temp` | 显示当前 CPU/GPU 温度 | | `cpu_custom_temp_sensor` | 使用自定义的 hwmon 传感器检测 CPU 温度。例如 `cpu_custom_temp_sensor=cpuss0_2,temp3_input`.| | `cpu_text`
`gpu_text` | 覆盖 CPU 和 GPU 文本。如果有多个 GPU,`gpu_text` 是一个列表 | | `cpu_efficiency` | 以每焦耳帧数显示 CPU 效率 | | `custom_text_center` | 居中显示自定义文本,适用于标题,例如 `custom_text_center=FlightLessMango Benchmarks` | | `custom_text` | 显示自定义文本,例如 `custom_text=Fsync enabled` | | `debug` | 显示 gamescope 应用程序帧时间和延迟图表(显然仅在 gamescope 上有效) | | `device_battery_icon` | 显示无线设备电池图标。 | | `device_battery` | 显示无线设备的电池百分比。当前支持的参数为 `gamepad` 和 `mouse`,例如 `device_battery=gamepad,mouse` | | `display_server` | 显示当前的显示会话(例如 X11 或 wayland) | | `dynamic_frame_timing` | 这会将 frame_timing 的 y 轴更改为与当前的最大和最小帧时间相对应,而不是静态的 0-50 | | `engine_short_names` | 显示所用引擎的简短版本(例如用 `OGL` 代替 `OpenGL`) | | `engine_version` | 显示 OpenGL 或 Vulkan 以及基于 Vulkan 的渲染引擎的版本 | | `exec` | 在下一列显示 bash 命令的输出,例如 `custom_text=/home` , `exec=df -h /home \| tail -n 1`。仅在使用 `legacy_layout=0` 时有效 | | `exec_name` | 显示当前可执行文件名称 | | `fan` | 显示 Steam Deck 风扇转速 | | `fcat` | 启用帧捕获分析 | | `fcat_overlay_width=` | 设置 fcat 的宽度。默认为 `24` | | `fcat_screen_edge=` | 决定 fcat 显示在哪个边缘。取值范围在 `1` 到 `4` 之间 | | `font_file_text` | 更改文本字体。否则使用 `font_file` | | `font_file` | 更改默认字体(设置 .TTF/.OTF 文件的位置) | | `font_glyph_ranges` | 指定额外的字体字形范围,以逗号分隔:`korean`、`chinese`、`chinese_simplified`、`japanese`、`cyrillic`、`thai`、`vietnamese`、`latin_ext_a`、`latin_ext_b`。如果您遇到崩溃或文本只显示方块,请减小字体大小或字形范围 | | `font_scale=` | 设置全局字体缩放。默认为 `1.0` | | `font_scale_media_player` | 更改媒体播放器文本相对于 `font_size` 的大小 | | `font_size=` | 可自定义的字体大小。默认为 `24` | | `font_size_secondary=` | 可自定义的次要指标字体大小。默认为 `0.55 * font_size`,除非设置了 `no_small_font`,在这种情况下默认值为 `font_size` | | `font_size_text=` | 可自定义其他文本(如媒体元数据)的字体大小。默认为 `24` | | `fps_color_change` | 根据 FPS 值更改 FPS 文本颜色 | | `fps_color=` | 选择启用 `fps_color_change` 时 FPS 更改的颜色。与 fps_value 对应。默认为 `b22222,fdfd09,39f900` | | `fps_limit_method` | FPS 限制器应该在呈现帧之前还是之后等待。选择 `late`(默认)可获得最低延迟,或选择 `early` 可获得最平滑的帧时间 | | `fps_limit` | 限制应用程序的帧率。以逗号分隔的一个或多个 FPS 值列表。`0` 表示无限制 | | `fps_only` | 仅显示 FPS。***不打算与其他显示参数一起使用*** | | `fps_sampling_period=` | 收集 FPS 的两个采样点之间的时间间隔(以毫秒为单位)。默认为 `500` | | `fps_value` | 选择 `fps_color_change` 在何处变换颜色的断点。例如 `60,144`,默认为 `30,60` | | `fps_metrics` | 接受十进制数值列表或 avg 值,例如 `avg,0.001` | | `reset_fps_metrics` | 重置 FPS 指标的快捷键,默认为 `Shift_R+F9` | | `fps_text` | 在 FPS 前面显示自定义的引擎名称文本 | | `frame_count` | 显示帧计数 | | `frametime` | 在 FPS 文本旁显示帧时间 | | `frame_timing_detailed` | 在更详细的图表中显示帧时间 | | `fsr` | 显示 FSR 的状态(仅在 gamescope 中有效) | | `hdr` | 显示 HDR 的状态(仅在 gamescope 中有效) | | `refresh_rate` | 显示当前刷新率(仅在 gamescope 中有效) | | `full` | 启用大多数可切换的参数(当前不包括 `histogram`) | | `gamemode` | 显示 GameMode 是否开启 | | `gpu_color`
`cpu_color`
`vram_color`
`ram_color`
`io_color`
`engine_color`
`frametime_color`
`background_color`
`text_color`
`media_player_color`
`network_color` | 更改默认颜色:`gpu_color=RRGGBB` | | `gpu_core_clock`
`gpu_mem_clock`| 显示 GPU 核心/显存频率 | | `gpu_fan` | GPU 风扇转速(RPM),NVIDIA 例外,显示为百分比 | | `gpu_load_change` | 根据负载更改 GPU 负载的颜色 | | `gpu_load_color` | 设置 GPU 负载变化低、中和高的颜色。例如 `gpu_load_color=0000FF,00FFFF,FF00FF` | | `gpu_load_value` | 设置中等和高负载的值,例如 `gpu_load_value=50,90` | | `gpu_name` | 显示来自 pci.ids 的 GPU 名称 | | `gpu_voltage` | 显示 GPU 电压 | | `gpu_list` | 列出要显示的 GPU:`gpu_list=0,1` | | `gpu_efficiency` | 以每焦耳帧数显示 GPU 效率 | | `gpu_power_limit` | 显示 GPU 功耗限制 | | `hide_fsr_sharpness` | 隐藏 `fsr` 选项的锐度信息(仅在 gamescope 中可用) | | `histogram` | 将 FPS 图表更改为直方图 | | `horizontal` | 以水平位置显示 Mangohud | | `horizontal_separator_color` | 设置水平分隔线的颜色(仅在水平布局下有效) | | `horizontal_stretch` | 在 `horizontal` 模式下将背景拉伸至屏幕宽度 | | `hud_compact` | 显示紧凑版的 MangoHud | | `hud_no_margin` | 移除 MangoHud 周围的边距 | | `io_read`
`io_write` | 显示非缓存 IO 读/写,单位为 MiB/s | | `log_duration` | 设置日志记录运行的时间量(以秒为单位) | | `log_interval` | 更改默认的日志间隔(以毫秒为单位)。默认为 `0` | | `log_versioning` | 向日志添加更多标头和信息(如版本控制)。这种格式(目前)在 flightlessmango.com 上不受支持 | | `media_player_format` | 格式化媒体播放器元数据。添加额外文本等。分号用于换行。默认为 `{title};{artist};{album}` | | `media_player_name` | 强制指定媒体播放器 DBus 服务名称(不带 `org.mpris.MediaPlayer2` 部分),如 `spotify`、`vlc`、`audacious` 或 `cantata`。如果未设置,MangoHud 将尝试在当前正在播放的播放器之间切换 | | `media_player` | 显示媒体播放器元数据 | | `no_display` | 默认隐藏 HUD | | `no_small_font` | 对较小的文本(如单位)使用主字体大小 | | `offset_x` `offset_y` | HUD 位置偏移量 | | `output_file` | 设置日志文件的位置和名称 | | `output_folder` | 设置输出文件的位置(日志记录必需) | | `pci_dev` | 在多 GPU 设置中选择 GPU 设备 | | `permit_upload` | 允许将日志上传到 Flightlessmango.com | | `picmip` | Mip-map LoD 偏移。负值将增加纹理清晰度(和锯齿)。正值将增加纹理模糊度 `-16`-`16` | | `position=` | HUD 的位置:`top-left`(默认)、`top-right`、`middle-left`、`middle-right`、`bottom-left`、`bottom-right`、`top-center`、`bottom-center` | | `preset=` | 以逗号分隔的一个或多个预设列表。默认为 `-1,0,1,2,3,4`。可用预设:
`0` (无 Hud)
`1` (仅 FPS)
`2` (水平)
`3` (扩展)
`4` (详细)
可以使用 `~/.config/MangoHud/` 中的 [presets.conf](data/presets.conf) 文件创建用户自定义预设。 | | `procmem`
`procmem_shared`, `procmem_virt`| 显示进程的内存使用情况:驻留内存、共享内存和/或虚拟内存。如果禁用 `procmem`(驻留内存),也会关闭其他项 | | `proc_vram` | 显示进程的 VRAM 使用情况 | | `ram`
`vram` | 显示系统 RAM/VRAM 使用情况 | | `ram_temp` | 显示 RAM 温度(仅支持带有 `spd5118` 驱动的 DDR5) | | `read_cfg` | 作为第一个参数添加到 MANGOHUD_CONFIG,以便同时加载配置。否则仅使用 `MANGOHUD_CONFIG` 参数 | | `reload_cfg=` | 更改重新加载配置的快捷键。默认 = `Shift_L+F4` | | `resolution` | 显示当前分辨率 | | `retro` | 禁用线性纹理过滤。使纹理看起来有马赛克感 | | `round_corners` | 更改圆角的圆滑程度,例如 `round_corners=10.0` | | `show_fps_limit` | 显示当前的 FPS 限制 | | `swap` | 在系统 RAM 使用情况旁显示交换空间使用情况 | | `table_columns` | 设置 ImGui 的表格列数,默认为 3 | | `temp_fahrenheit` | 以华氏度显示温度 | | `text_outline` | 围绕文本绘制轮廓以提高可读性。默认启用。 | | `text_outline_color=` | 设置 `text_outline` 的颜色。默认 = `000000` | | `text_outline_thickness=` | 设置 `text_outline` 的粗细。默认 = `1.5` | | `throttling_status` | 根据 Power(功耗)、Current(电流)、Temp(温度)或 "other"(其他)显示 GPU 是否正在降频(仅在当前发生降频时显示)。目前在 Nvidia 上默认禁用,因为它会导致 3000 系列出现延迟 | | `throttling_status_graph` | 与 `throttling_status` 相同,但在帧时间图表中显示降频情况,且仅显示功耗和温度降频 | | `time`
`time_format=%T` | 显示本地时间。格式化帮助请参见 [std::put_time](https://en.cppreference.com/w/cpp/io/manip/put_time)。注意:有时应用程序可能会将 `TZ`(时区)环境变量设置为 UTC/GMT | | `time_no_label` | 移除时间前的标签 | | `toggle_fps_limit` | 在 FPS 限制之间循环切换(需要使用 `fps_limit` 至少设置两个值)。默认为 `Shift_L+F1` | | `toggle_preset` | 在预设之间循环切换。默认为 `Shift_R+F10` | | `toggle_hud=`
`toggle_logging=` | 可修改的切换热键。默认分别为 `Shift_R+F12` 和 `Shift_L+F2` | | `toggle_hud_position` | 切换 MangoHud 位置。默认为 `R_Shift+F11` | | `trilinear` | 强制三线性过滤 | | `upload_log` | 更改上传日志的快捷键 | | `upload_logs` | 启用自动上传日志到 flightlessmango.com | | `version` | 显示当前的 MangoHud 版本 | | `vkbasalt` | 显示 vkBasalt 是否开启 | | `vsync`
`gl_vsync` | 为 OpenGL 或 Vulkan 设置 Vsync | | `vulkan_present_mode=` | 使用指定的模式名称覆盖 Vulkan [呈现模式](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentModeKHR.html)(优先级高于 `vsync=`) |
| `vulkan_driver` | 显示正在使用的 Vulkan 驱动 (radv/amdgpu-pro/amdvlk) |
| `width=`
`height=` | 可自定义的 HUD 尺寸(以像素为单位) | | `wine_color` | 更改 wine/proton 文本的颜色 | | `wine` | 显示当前正在使用的 Wine 或 Proton 版本 | | `winesync` | 显示正在使用的 wine 同步方法 | | `present_mode` | 显示当前的 Vulkan [呈现模式](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentModeKHR.html) 或 OpenGL 中的 Vsync 状态 | | `network` | 显示网络接口的 tx 和 rx kb/s。您可以使用 `network=eth0` 指定接口 | | `fex_stats` | 显示 FEX-Emu 统计信息。默认 = `status+apptype+hotthreads+jitload+sigbus+smc+softfloat` | | `ftrace` | 显示有关通过 ftrace 报告的跟踪事件的信息 | | `flip_efficiency` | 将 CPU 和 GPU 效率翻转为每帧焦数 | 示例:`MANGOHUD_CONFIG=cpu_temp,gpu_temp,position=top-right,height=500,font_size=32` 由于逗号也用作选项分隔符,对于包含逗号的值需要使用反杠进行转义,因此您可以改用 `+`,例如 `MANGOHUD_CONFIG=fps_limit=60+30+0`。 *注意:宽度和高度会根据 font_size 自动设置,但可以被覆盖。* *注意:目前 Intel 和 AMD Zen CPU 使用 RAPL 来通过 `cpu_power` 显示功耗,但由于[漏洞](https://platypusattack.com/),非 root 用户可能无法读取。相应的 `energy_uj` 文件必须对应用户可读,例如以 root 身份运行 `chmod o+r /sys/class/powercap/intel-rapl\:0/energy_uj`,否则显示的功耗将是 **0 W**,尽管让该文件可读可能会成为持续到系统重启前的潜在安全漏洞。* *注意:必须安装 [zenpower3](https://git.exozy.me/a/zenpower3) 或 [zenergy](https://github.com/boukehaarsma23/zenergy) 内核驱动才能显示 Ryzen CPU 的功耗。* ## Vsync ### OpenGL Vsync - `-1` = 自适应同步 - `0` = 关 - `1` = 开 - `n` = 同步到刷新率 / n。 ### Vulkan Vsync - `0` = 自适应 VSync (FIFO_RELAXED_KHR) - `1` = 关 (IMMEDIATE_KHR) - `2` = Mailbox (不封顶 FPS 的 VSync) (MAILBOX_KHR) - `3` = 开 (FIFO_KHR) 您的设备可能不支持所有 vulkan vsync 选项,您可以在 [vulkan.gpuinfo.org](https://vulkan.gpuinfo.org/listsurfacepresentmodes.php?platform=linux) 检查您的设备支持哪些选项 ## 按键绑定 - `Shift_L+F2` : 切换日志记录 - `Shift_L+F4` : 重新加载配置 - `Shift_R+F12` : 切换 Hud - `Shift_R+F9` : 重置 FPS 指标 ## 变通方法 以 "gl_*" 开头的选项适用于 OpenGL。 - `gl_size_query = viewport` : 指定用于获取显示大小的对象。选项有 "viewport"、"scissorbox" 或禁用。默认使用 glXQueryDrawable。 - `gl_bind_framebuffer = 0..N` : 在绘制 MangoHud 之前(重新)绑定给定的帧缓冲。有助于解决《十字军之王3》的问题。 - `gl_dont_flip = 1` : 如果使用 GL_UPPER_LEFT,请不要交换原点。有助于解决 Ryujinx 的问题。 ## FPS 日志记录 您必须在配置中为 `output_folder` 设置一个有效路径来存储日志。 当您切换日志记录时(默认快捷键为 `Shift_L+F2`),系统会在您的 `output_folder` 中创建一个包含游戏名称以及日期和时间戳的文件。 日志文件可以通过两种不同的工具进行可视化:在线和本地。 ### 在线可视化:FlightlessMango.com 日志文件可以(批量)上传到 [FlightlessMango.com](https://flightlessmango.com/games/user_benchmarks),随后该网站将负责创建帧时间图,并以表格形式和水平条形图形式提供包含 1% 最低 FPS / 平均帧率 / 97th 百分位的摘要。 注意: - 上传的基准测试是公开的:您只需将链接提供给他们,即可与任何人分享。 - 基准测试文件名用作生成的表格和图表中的图例,它们可以在上传后重命名。  ### 本地可视化:`mangoplot` `mangoplot` 是 `MangoHud` 附带的一个绘图脚本:在给定的文件夹中,它会提取每个日志文件,制作其帧速率的一维热图,然后将这些热图垂直堆叠以形成二维图形,以便在基准测试之间进行直观的视觉比较。 输出示例:  Overwatch 2, 5950X + 5700XT, 低画质预设, FHD, 50% 渲染比例 ## 各 GPU 厂商/驱动的指标支持
#### Intel 注意事项
- `i915` 的 GPU 温度需要 **linux 6.13+**
- `i915` 的风扇速度需要 **linux 6.12+**
- `xe` 的 GPU 温度和 VRAM 温度需要 **linux 6.15+**
- `xe` 的风扇速度需要 **linux 6.16+**
- GPU 使用率和内存使用率显示的是当前进程的使用情况,而不是整个系统的使用情况(这是 intel 方面的问题)
- https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14153
- https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/4861
- Intel 集成 GPU 受到**限制**,因为缺少 hwmon 接口(这是 intel 方面的问题,[915 源码](https://github.com/torvalds/linux/blob/5fc31936081919a8572a3d644f3fbb258038f337/drivers/gpu/drm/i915/i915_hwmon.c#L914-L916),[xe 源码](https://github.com/torvalds/linux/blob/5fc31936081919a8572a3d644f3fbb258038f337/drivers/gpu/drm/xe/xe_hwmon.c#L824-L826))
#### Panfrost 和 Panthor 注意事项
- GPU 使用率需要执行 `echo N | sudo tee /sys/class/drm/renderD*/device/profiling`
- 其中 N 是一个数字,Panfrost 为 1,Panthor 为 3。
例如 `control=mangohud` 或 `control=mangohud-%p`(`%p` 将被替换为进程 ID) | | `core_load_change` | 更改 CPU 核心负载的颜色,使用与 `cpu_load_value` 和 `cpu_load_change` 相同的数据 | | `core_load` | 显示每个核心的负载和频率 | | `core_type` | 显示每个核心的 CPU 核心类型。对于 Intel,它显示哪些核心是性能核和能效核;对于 ARM,它显示核心代号,如 A52、A53、A76 等... | | `core_bars` | 将 `core_load` 的显示从数字更改为垂直条 | | `cpu_load_change` | 根据负载更改 CPU 负载的颜色 | | `cpu_load_color` | 设置 GPU 负载变化低、中和高的颜色。例如 `cpu_load_color=0000FF,00FFFF,FF00FF` | | `cpu_load_value` | 设置中等和高负载的值,例如 `cpu_load_value=50,90` | | `cpu_mhz` | 显示 CPU 当前的 MHz | | `cpu_power`
`gpu_power` | 显示 CPU/GPU 功耗(瓦) | | `cpu_temp`
`gpu_temp`
`gpu_junction_temp`
`gpu_mem_temp` | 显示当前 CPU/GPU 温度 | | `cpu_custom_temp_sensor` | 使用自定义的 hwmon 传感器检测 CPU 温度。例如 `cpu_custom_temp_sensor=cpuss0_2,temp3_input`.| | `cpu_text`
`gpu_text` | 覆盖 CPU 和 GPU 文本。如果有多个 GPU,`gpu_text` 是一个列表 | | `cpu_efficiency` | 以每焦耳帧数显示 CPU 效率 | | `custom_text_center` | 居中显示自定义文本,适用于标题,例如 `custom_text_center=FlightLessMango Benchmarks` | | `custom_text` | 显示自定义文本,例如 `custom_text=Fsync enabled` | | `debug` | 显示 gamescope 应用程序帧时间和延迟图表(显然仅在 gamescope 上有效) | | `device_battery_icon` | 显示无线设备电池图标。 | | `device_battery` | 显示无线设备的电池百分比。当前支持的参数为 `gamepad` 和 `mouse`,例如 `device_battery=gamepad,mouse` | | `display_server` | 显示当前的显示会话(例如 X11 或 wayland) | | `dynamic_frame_timing` | 这会将 frame_timing 的 y 轴更改为与当前的最大和最小帧时间相对应,而不是静态的 0-50 | | `engine_short_names` | 显示所用引擎的简短版本(例如用 `OGL` 代替 `OpenGL`) | | `engine_version` | 显示 OpenGL 或 Vulkan 以及基于 Vulkan 的渲染引擎的版本 | | `exec` | 在下一列显示 bash 命令的输出,例如 `custom_text=/home` , `exec=df -h /home \| tail -n 1`。仅在使用 `legacy_layout=0` 时有效 | | `exec_name` | 显示当前可执行文件名称 | | `fan` | 显示 Steam Deck 风扇转速 | | `fcat` | 启用帧捕获分析 | | `fcat_overlay_width=` | 设置 fcat 的宽度。默认为 `24` | | `fcat_screen_edge=` | 决定 fcat 显示在哪个边缘。取值范围在 `1` 到 `4` 之间 | | `font_file_text` | 更改文本字体。否则使用 `font_file` | | `font_file` | 更改默认字体(设置 .TTF/.OTF 文件的位置) | | `font_glyph_ranges` | 指定额外的字体字形范围,以逗号分隔:`korean`、`chinese`、`chinese_simplified`、`japanese`、`cyrillic`、`thai`、`vietnamese`、`latin_ext_a`、`latin_ext_b`。如果您遇到崩溃或文本只显示方块,请减小字体大小或字形范围 | | `font_scale=` | 设置全局字体缩放。默认为 `1.0` | | `font_scale_media_player` | 更改媒体播放器文本相对于 `font_size` 的大小 | | `font_size=` | 可自定义的字体大小。默认为 `24` | | `font_size_secondary=` | 可自定义的次要指标字体大小。默认为 `0.55 * font_size`,除非设置了 `no_small_font`,在这种情况下默认值为 `font_size` | | `font_size_text=` | 可自定义其他文本(如媒体元数据)的字体大小。默认为 `24` | | `fps_color_change` | 根据 FPS 值更改 FPS 文本颜色 | | `fps_color=` | 选择启用 `fps_color_change` 时 FPS 更改的颜色。与 fps_value 对应。默认为 `b22222,fdfd09,39f900` | | `fps_limit_method` | FPS 限制器应该在呈现帧之前还是之后等待。选择 `late`(默认)可获得最低延迟,或选择 `early` 可获得最平滑的帧时间 | | `fps_limit` | 限制应用程序的帧率。以逗号分隔的一个或多个 FPS 值列表。`0` 表示无限制 | | `fps_only` | 仅显示 FPS。***不打算与其他显示参数一起使用*** | | `fps_sampling_period=` | 收集 FPS 的两个采样点之间的时间间隔(以毫秒为单位)。默认为 `500` | | `fps_value` | 选择 `fps_color_change` 在何处变换颜色的断点。例如 `60,144`,默认为 `30,60` | | `fps_metrics` | 接受十进制数值列表或 avg 值,例如 `avg,0.001` | | `reset_fps_metrics` | 重置 FPS 指标的快捷键,默认为 `Shift_R+F9` | | `fps_text` | 在 FPS 前面显示自定义的引擎名称文本 | | `frame_count` | 显示帧计数 | | `frametime` | 在 FPS 文本旁显示帧时间 | | `frame_timing_detailed` | 在更详细的图表中显示帧时间 | | `fsr` | 显示 FSR 的状态(仅在 gamescope 中有效) | | `hdr` | 显示 HDR 的状态(仅在 gamescope 中有效) | | `refresh_rate` | 显示当前刷新率(仅在 gamescope 中有效) | | `full` | 启用大多数可切换的参数(当前不包括 `histogram`) | | `gamemode` | 显示 GameMode 是否开启 | | `gpu_color`
`cpu_color`
`vram_color`
`ram_color`
`io_color`
`engine_color`
`frametime_color`
`background_color`
`text_color`
`media_player_color`
`network_color` | 更改默认颜色:`gpu_color=RRGGBB` | | `gpu_core_clock`
`gpu_mem_clock`| 显示 GPU 核心/显存频率 | | `gpu_fan` | GPU 风扇转速(RPM),NVIDIA 例外,显示为百分比 | | `gpu_load_change` | 根据负载更改 GPU 负载的颜色 | | `gpu_load_color` | 设置 GPU 负载变化低、中和高的颜色。例如 `gpu_load_color=0000FF,00FFFF,FF00FF` | | `gpu_load_value` | 设置中等和高负载的值,例如 `gpu_load_value=50,90` | | `gpu_name` | 显示来自 pci.ids 的 GPU 名称 | | `gpu_voltage` | 显示 GPU 电压 | | `gpu_list` | 列出要显示的 GPU:`gpu_list=0,1` | | `gpu_efficiency` | 以每焦耳帧数显示 GPU 效率 | | `gpu_power_limit` | 显示 GPU 功耗限制 | | `hide_fsr_sharpness` | 隐藏 `fsr` 选项的锐度信息(仅在 gamescope 中可用) | | `histogram` | 将 FPS 图表更改为直方图 | | `horizontal` | 以水平位置显示 Mangohud | | `horizontal_separator_color` | 设置水平分隔线的颜色(仅在水平布局下有效) | | `horizontal_stretch` | 在 `horizontal` 模式下将背景拉伸至屏幕宽度 | | `hud_compact` | 显示紧凑版的 MangoHud | | `hud_no_margin` | 移除 MangoHud 周围的边距 | | `io_read`
`io_write` | 显示非缓存 IO 读/写,单位为 MiB/s | | `log_duration` | 设置日志记录运行的时间量(以秒为单位) | | `log_interval` | 更改默认的日志间隔(以毫秒为单位)。默认为 `0` | | `log_versioning` | 向日志添加更多标头和信息(如版本控制)。这种格式(目前)在 flightlessmango.com 上不受支持 | | `media_player_format` | 格式化媒体播放器元数据。添加额外文本等。分号用于换行。默认为 `{title};{artist};{album}` | | `media_player_name` | 强制指定媒体播放器 DBus 服务名称(不带 `org.mpris.MediaPlayer2` 部分),如 `spotify`、`vlc`、`audacious` 或 `cantata`。如果未设置,MangoHud 将尝试在当前正在播放的播放器之间切换 | | `media_player` | 显示媒体播放器元数据 | | `no_display` | 默认隐藏 HUD | | `no_small_font` | 对较小的文本(如单位)使用主字体大小 | | `offset_x` `offset_y` | HUD 位置偏移量 | | `output_file` | 设置日志文件的位置和名称 | | `output_folder` | 设置输出文件的位置(日志记录必需) | | `pci_dev` | 在多 GPU 设置中选择 GPU 设备 | | `permit_upload` | 允许将日志上传到 Flightlessmango.com | | `picmip` | Mip-map LoD 偏移。负值将增加纹理清晰度(和锯齿)。正值将增加纹理模糊度 `-16`-`16` | | `position=` | HUD 的位置:`top-left`(默认)、`top-right`、`middle-left`、`middle-right`、`bottom-left`、`bottom-right`、`top-center`、`bottom-center` | | `preset=` | 以逗号分隔的一个或多个预设列表。默认为 `-1,0,1,2,3,4`。可用预设:
`0` (无 Hud)
`1` (仅 FPS)
`2` (水平)
`3` (扩展)
`4` (详细)
可以使用 `~/.config/MangoHud/` 中的 [presets.conf](data/presets.conf) 文件创建用户自定义预设。 | | `procmem`
`procmem_shared`, `procmem_virt`| 显示进程的内存使用情况:驻留内存、共享内存和/或虚拟内存。如果禁用 `procmem`(驻留内存),也会关闭其他项 | | `proc_vram` | 显示进程的 VRAM 使用情况 | | `ram`
`vram` | 显示系统 RAM/VRAM 使用情况 | | `ram_temp` | 显示 RAM 温度(仅支持带有 `spd5118` 驱动的 DDR5) | | `read_cfg` | 作为第一个参数添加到 MANGOHUD_CONFIG,以便同时加载配置。否则仅使用 `MANGOHUD_CONFIG` 参数 | | `reload_cfg=` | 更改重新加载配置的快捷键。默认 = `Shift_L+F4` | | `resolution` | 显示当前分辨率 | | `retro` | 禁用线性纹理过滤。使纹理看起来有马赛克感 | | `round_corners` | 更改圆角的圆滑程度,例如 `round_corners=10.0` | | `show_fps_limit` | 显示当前的 FPS 限制 | | `swap` | 在系统 RAM 使用情况旁显示交换空间使用情况 | | `table_columns` | 设置 ImGui 的表格列数,默认为 3 | | `temp_fahrenheit` | 以华氏度显示温度 | | `text_outline` | 围绕文本绘制轮廓以提高可读性。默认启用。 | | `text_outline_color=` | 设置 `text_outline` 的颜色。默认 = `000000` | | `text_outline_thickness=` | 设置 `text_outline` 的粗细。默认 = `1.5` | | `throttling_status` | 根据 Power(功耗)、Current(电流)、Temp(温度)或 "other"(其他)显示 GPU 是否正在降频(仅在当前发生降频时显示)。目前在 Nvidia 上默认禁用,因为它会导致 3000 系列出现延迟 | | `throttling_status_graph` | 与 `throttling_status` 相同,但在帧时间图表中显示降频情况,且仅显示功耗和温度降频 | | `time`
`time_format=%T` | 显示本地时间。格式化帮助请参见 [std::put_time](https://en.cppreference.com/w/cpp/io/manip/put_time)。注意:有时应用程序可能会将 `TZ`(时区)环境变量设置为 UTC/GMT | | `time_no_label` | 移除时间前的标签 | | `toggle_fps_limit` | 在 FPS 限制之间循环切换(需要使用 `fps_limit` 至少设置两个值)。默认为 `Shift_L+F1` | | `toggle_preset` | 在预设之间循环切换。默认为 `Shift_R+F10` | | `toggle_hud=`
`toggle_logging=` | 可修改的切换热键。默认分别为 `Shift_R+F12` 和 `Shift_L+F2` | | `toggle_hud_position` | 切换 MangoHud 位置。默认为 `R_Shift+F11` | | `trilinear` | 强制三线性过滤 | | `upload_log` | 更改上传日志的快捷键 | | `upload_logs` | 启用自动上传日志到 flightlessmango.com | | `version` | 显示当前的 MangoHud 版本 | | `vkbasalt` | 显示 vkBasalt 是否开启 | | `vsync`
`gl_vsync` | 为 OpenGL 或 Vulkan 设置 Vsync | | `vulkan_present_mode=
`height=` | 可自定义的 HUD 尺寸(以像素为单位) | | `wine_color` | 更改 wine/proton 文本的颜色 | | `wine` | 显示当前正在使用的 Wine 或 Proton 版本 | | `winesync` | 显示正在使用的 wine 同步方法 | | `present_mode` | 显示当前的 Vulkan [呈现模式](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPresentModeKHR.html) 或 OpenGL 中的 Vsync 状态 | | `network` | 显示网络接口的 tx 和 rx kb/s。您可以使用 `network=eth0` 指定接口 | | `fex_stats` | 显示 FEX-Emu 统计信息。默认 = `status+apptype+hotthreads+jitload+sigbus+smc+softfloat` | | `ftrace` | 显示有关通过 ftrace 报告的跟踪事件的信息 | | `flip_efficiency` | 将 CPU 和 GPU 效率翻转为每帧焦数 | 示例:`MANGOHUD_CONFIG=cpu_temp,gpu_temp,position=top-right,height=500,font_size=32` 由于逗号也用作选项分隔符,对于包含逗号的值需要使用反杠进行转义,因此您可以改用 `+`,例如 `MANGOHUD_CONFIG=fps_limit=60+30+0`。 *注意:宽度和高度会根据 font_size 自动设置,但可以被覆盖。* *注意:目前 Intel 和 AMD Zen CPU 使用 RAPL 来通过 `cpu_power` 显示功耗,但由于[漏洞](https://platypusattack.com/),非 root 用户可能无法读取。相应的 `energy_uj` 文件必须对应用户可读,例如以 root 身份运行 `chmod o+r /sys/class/powercap/intel-rapl\:0/energy_uj`,否则显示的功耗将是 **0 W**,尽管让该文件可读可能会成为持续到系统重启前的潜在安全漏洞。* *注意:必须安装 [zenpower3](https://git.exozy.me/a/zenpower3) 或 [zenergy](https://github.com/boukehaarsma23/zenergy) 内核驱动才能显示 Ryzen CPU 的功耗。* ## Vsync ### OpenGL Vsync - `-1` = 自适应同步 - `0` = 关 - `1` = 开 - `n` = 同步到刷新率 / n。 ### Vulkan Vsync - `0` = 自适应 VSync (FIFO_RELAXED_KHR) - `1` = 关 (IMMEDIATE_KHR) - `2` = Mailbox (不封顶 FPS 的 VSync) (MAILBOX_KHR) - `3` = 开 (FIFO_KHR) 您的设备可能不支持所有 vulkan vsync 选项,您可以在 [vulkan.gpuinfo.org](https://vulkan.gpuinfo.org/listsurfacepresentmodes.php?platform=linux) 检查您的设备支持哪些选项 ## 按键绑定 - `Shift_L+F2` : 切换日志记录 - `Shift_L+F4` : 重新加载配置 - `Shift_R+F12` : 切换 Hud - `Shift_R+F9` : 重置 FPS 指标 ## 变通方法 以 "gl_*" 开头的选项适用于 OpenGL。 - `gl_size_query = viewport` : 指定用于获取显示大小的对象。选项有 "viewport"、"scissorbox" 或禁用。默认使用 glXQueryDrawable。 - `gl_bind_framebuffer = 0..N` : 在绘制 MangoHud 之前(重新)绑定给定的帧缓冲。有助于解决《十字军之王3》的问题。 - `gl_dont_flip = 1` : 如果使用 GL_UPPER_LEFT,请不要交换原点。有助于解决 Ryujinx 的问题。 ## FPS 日志记录 您必须在配置中为 `output_folder` 设置一个有效路径来存储日志。 当您切换日志记录时(默认快捷键为 `Shift_L+F2`),系统会在您的 `output_folder` 中创建一个包含游戏名称以及日期和时间戳的文件。 日志文件可以通过两种不同的工具进行可视化:在线和本地。 ### 在线可视化:FlightlessMango.com 日志文件可以(批量)上传到 [FlightlessMango.com](https://flightlessmango.com/games/user_benchmarks),随后该网站将负责创建帧时间图,并以表格形式和水平条形图形式提供包含 1% 最低 FPS / 平均帧率 / 97th 百分位的摘要。 注意: - 上传的基准测试是公开的:您只需将链接提供给他们,即可与任何人分享。 - 基准测试文件名用作生成的表格和图表中的图例,它们可以在上传后重命名。  ### 本地可视化:`mangoplot` `mangoplot` 是 `MangoHud` 附带的一个绘图脚本:在给定的文件夹中,它会提取每个日志文件,制作其帧速率的一维热图,然后将这些热图垂直堆叠以形成二维图形,以便在基准测试之间进行直观的视觉比较。 输出示例:  Overwatch 2, 5950X + 5700XT, 低画质预设, FHD, 50% 渲染比例 ## 各 GPU 厂商/驱动的指标支持
| Nvidia | AMD | Intel 独立显卡 | Intel 集成显卡 | Panfrost/Panthor 驱动 | ||
|---|---|---|---|---|---|---|
| i915 | xe | i915/xe | ||||
| 使用率% | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| 温度 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🟢 |
| 结点温度 | 🔴 | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 |
| 显存温度 | 🔴 | 🟢 | 🔴 | 🟢 | 🔴 | 🔴 |
| 进程 VRAM | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| 系统 VRAM | 🟢 | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 |
| 总 VRAM | 🟢 | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 |
| 显存频率 | 🟢 | 🟢 | 🔴 | 🔴 | 🔴 | 🔴 |
| 核心频率 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| 功耗 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🔴 |
| 降频状态 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 |
| 风扇速度 | 🟢 | 🟢 | 🟢 | 🟢 | 🔴 | 🔴 |
| 电压 | 🔴 | 🟢 | 🟢 | 🟢 | 🔴 | 🔴 |
标签:CPU负载, FPS显示, GPU负载, Linux工具, MangoHud, OpenGL, UML, Vulkan, 客户端加密, 性能监控, 显卡性能测试, 游戏工具, 游戏覆盖层, 硬件监控, 端口探测, 系统信息显示, 系统温度监控, 逆向工具, 预握手