MangoHud性能监控

如果你经常关注各种显卡、3A游戏大作,或者各种手机、平板等硬件测评,经常会冒出FPS、帧率稳定等相关监测。 有时候我自己也想测测,不求接近珠海白电大佬董大姐,只是单纯好玩或者是为了验证方案。

比如在 Linux 下 AMD 的 vulkan 驱动有三种:

    1. vulkan-radeon(RADV,part of Mesa projec)
    1. amdvlk(AMDVLK Open,maintained by AMD)
    1. vulkan-amdgpu-pro( AMDVLK Closed,maintained by AMD)

其中,RADV是属于Mesa的,开源组织,可能热血人士比较多,更新较为频繁;AMDVLK Open 是 AMD 官方维护的,貌似每个季度推出一个版本;AMDVLK Closed 是给高端GPU使用的。

那么问题来了,假设你像我一样是 Linux 游戏用户,有个丐版AMD的APU,想知道选 RADV 还是 AMDVLK 好,这个时候你需要进行基础性能测试。最简单的方案是开启steam中的帧率监控,但是指标过于简单(Linux下目前只能开启FPS监控),不理想,况且不是所有 Linux 游戏都在 steam 上,此时,你需要MangoHud这个工具。

先说结论,在我的设备(AMD Radeon 780M Graphics)上,在 Dota2 和 cs2 上测试多次,还是 AMDVLK Open 比 RADV 好,不信你可以试试看。

其次,我想解释下这个 MangoHud,方便记住名字,纯属个人猜测:

Mango 是 https://github.com/flightlessmango/MangoHud 这个仓库作者名字的一部分,作者图标是个芒果🥭;Hud 就是个通用概念,比如现在很多新能源车都有,叫什么抬头数字显示,或者抬头显示器。大概就是显示简略导航信息、汽车时速什么的,也就是一些监控信息。和我们这里帧率、显卡使用率等类同。

这样,就比较好记住这名字了。

以下是我的实践操作记录:

1. 安装

1sudo pacman -S mangohud goverlay

goverlay 是 mangohud 的图形化配制程序,看界面是QT开发的。我想不是专业评测人员是不会醉心于手动修改 .config/MangoHud/MangoHud.conf 配置文件的,有个图形化的配置程序还是挺不错的。

安装完成后可以简单检测下,好比各种代码的linter:

1$ mangohud glxgears
2$ mangohud vkcube

glxgears 会显示三个滚动齿轮:

mangohud_glxgears

vkcube 显示个旋转的立方体:

mangohud_vkcube
当你还没安装游戏,可以简单用这2个程序检测,确认显卡驱动是否安装完好。

2. 使用

  • 单个游戏使用

简单粗暴,直接 mangohud game,其中 game 为游戏的启动命令。比如:

1➜  mangohud mari0

mangohud_mari0

  • steam 游戏示例

右键点击库中的游戏,选择属性,然后在启动选项文本框中输入:

1mangohud %command%
  • 环境变量

使 MangoHud 自动与所有 Vulkan 游戏一起启动,可以设置以下环境变量:

1MANGOHUD=1

比如我的labwc下:

1➜  ~ cat .config/labwc/environment | tail -n 3
2
3#MangoHud
4MANGOHUD=1

这样写的好处是,不用在每个steam游戏中,更改启动项。不好的地方是,不是每个游戏的都支持,supertuxkart 就不支持。

3. 配置

先给出我的配置:

 1➜  ~ grep -Ev '^#|^$' .config/MangoHud/MangoHud.conf
 2legacy_layout=false
 3background_alpha=0.1
 4round_corners=10
 5background_alpha=0.1
 6background_color=000000
 7font_file=/usr/share/fonts/TTF/HackNerdFont-Regular.ttf
 8font_size=16
 9text_color=FFFFFF
10position=top-right
11toggle_hud=Shift_R+F12
12pci_dev=0:c4:00.0
13table_columns=5
14gpu_text=GPU
15gpu_stats
16gpu_load_change
17gpu_load_value=50,90
18gpu_load_color=FFFFFF,FFAA7F,CC0000
19gpu_core_clock
20gpu_mem_clock
21gpu_temp
22gpu_power
23gpu_color=2E9762
24cpu_text=CPU
25cpu_stats
26cpu_load_change
27cpu_load_value=50,90
28cpu_load_color=FFFFFF,FFAA7F,CC0000
29cpu_mhz
30cpu_temp
31cpu_power
32cpu_color=2E97CB
33vram
34vram_color=AD64C1
35vram_color=AD64C1
36ram
37ram_color=C26693
38fps
39engine_version
40engine_color=EB5B5B
41frame_timing
42frametime_color=FFFFFF
43fps_limit_method=late
44toggle_fps_limit=Shift_L+F1
45fps_limit=0
46fps_color_change
47fps_color=B22222,FDFD09,39F900
48fps_value=30,60
49output_folder=/home/mephisto
50log_duration=30
51autostart_log=0
52log_interval=100
53blacklist=protonplus,lsfg-vk-ui,bazzar,gnome-calculator,pamac-manager,lact,ghb,bitwig-studio,ptyxis,yumex
54toggle_logging=Shift_L+F2

非专业人士,建议运行 goverlay 来进行图形化配置。

goverlay_1
Color Theme 个人选的 MangoHud stock

goverlay_2

圆角、背景透明0.1、字体选个自己中意的、位置、列数目(选5个,多列信息不会换行)。

值得特别说明的是那个翻转快捷键Shift_R + F12, 可在显示hud和不显示hud间切换。这个还是很有用处的,因为你选的位置可能会遮挡游戏画面信息。 想看的时候,使用快捷键呼出即可,按需要取舍。在steam下面,如何你开启了 wayland,这个快捷键会失效,xwayland 才会正常,我自己测试 dota2 和 cs2的时候发现的。

最好玩的是,我现在用的编辑器zed,因为用vukan调用了gpu,我设置了环境变量 MANGOHUD=1,右上角也会出现 mangohud,即使是wayland的,也支持快捷键切换隐藏或者显示。

如下图所示:

mangohud_zed

4. 指标解释

光有指标,不知道指标含义也是枉然,以下是一些常见指标的含义:

  • FPS(Frames Per Second):即每秒帧数,显示游戏或应用程序当前的帧率,数值越高表示运行越流畅。
  • CPU Load:指 CPU 的负载情况,显示 CPU 当前的工作量,以百分比形式表示。
  • GPU Load:表示 GPU 的负载,即 GPU 在处理图形渲染等任务时的工作量,同样以百分比形式呈现。
  • CPU Temperature:CPU 的温度,反映 CPU 在运行过程中的发热情况,通常以摄氏度(℃)为单位。
  • GPU Temperature:GPU 的温度,显示显卡在工作时的温度状况,单位也是摄氏度(℃)。
  • VRAM Occupied:显存占用量,显示当前游戏或应用程序使用了多少显存,以字节为单位。
  • RAM Occupied:内存占用量,表明系统内存中被占用的部分,单位为字节。
  • Frame Timing:提供每帧渲染所需的时间信息,可帮助分析游戏帧率不稳定的原因。

还有其它指标,有兴趣的自行翻阅相关文档。

最后,请看这张图表:

hud_metrics
可见 MangoHud 对 AMD 支持最完善,Linux 普通用户买 AMD 的显卡可能比较好,So,Fxxx NVIDIA!

最后修改于: Thursday, August 28, 2025
欢迎关注微信公众号,留言交流;也欢迎使用微信小程序。

相关文章:

翻译: