我发现在我的ArchLinux笔记本上游玩游戏时,如果游戏窗口位于外接副屏上,游戏帧率将会急剧下降,伴有频繁帧率大幅波动和延迟。
例如,Minecraft(Linux原生)的帧率从106掉到了38;使用Wine运行的绝区零帧率从稳定60掉到了20帧上下。
系统信息: CPU:12500H
显卡:核显+RTX 3050Ti
主屏为笔记本内建屏幕,2560*1440@144Hz
副屏为1920*1080@60Hz
KDE Plasma Wayland
使用的是prime-run运行的minecraft,驱动使用nvidia-open-dkms
将副屏上的窗口设置为全屏对副屏上的帧率没有改善。似乎所有副屏上的东西都伴有略微更高的延迟,并且帧数明显比主屏低。
我还注意到一点,当游戏窗口位于内置屏幕上时,独显的占用是100%;而当窗口在副屏上时,这个占用率会显著下降,并在50%左右波动。与此同时,CPU和核显占用一直维持在低位,没有异常的高占用。以下是xrandr的输出:
Screen 0: minimum 16 x 16, current 4960 x 1440, maximum 32767 x 32767
eDP-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
RANDR Emulation: 1
non-desktop: 0
supported: 0, 1
2560x1440 164.90*+
1920x1440 164.87
1600x1200 164.88
1440x1080 164.85
1400x1050 164.77
1280x1024 164.81
1280x960 164.80
1152x864 164.77
1024x768 164.99
800x600 164.72
640x480 164.26
320x240 163.69
1920x1200 164.87
1680x1050 164.82
1440x900 164.74
1280x800 164.81
1152x720 164.77
960x600 164.72
928x580 164.51
800x500 164.66
768x480 164.47
720x480 164.67
640x400 164.67
320x200 161.83
2048x1152 164.90
1920x1080 164.83
1600x900 164.77
1368x768 164.98
1280x720 164.71
1024x576 164.94
864x486 164.71
720x400 164.23
640x350 164.46
HDMI-A-1 connected 2400x1350+2560+0 (normal left inverted right x axis y axis) 527mm x 296mm
RANDR Emulation: 1
non-desktop: 0
supported: 0, 1
2400x1350 59.93*+
1600x1200 59.87
1440x1080 59.99
1400x1050 59.98
1280x1024 59.89
1280x960 59.94
1152x864 59.96
1024x768 59.92
800x600 59.86
640x480 59.38
320x240 59.29
1920x1200 59.88
1680x1050 59.95
1440x900 59.89
1280x800 59.81
1152x720 59.97
960x600 59.63
928x580 59.88
800x500 59.50
768x480 59.90
720x480 59.71
640x400 59.95
320x200 58.14
2048x1152 59.90
1920x1080 59.96
1600x900 59.95
1368x768 59.88
1280x720 59.86
1024x576 59.90
864x486 59.92
720x400 59.27
640x350 59.28