8.6 KiB
如果你遇到了性能问题(卡顿、延迟、功耗过高等),本文档可能有所帮助。
下面是一些你可能面临的情况:
我的显卡性能不足
如果你无法流畅使用一些有较高性能要求的效果(如 Anime4K、AdaptiveSharpen 等),请尝试下面的操作:
- 更换为性能需求更低的效果。如 Anime4K_Upscale_S 比 Anime4K_Upscale_L 快的多,CAS 比 AdaptiveSharpen 快的多,它们可以有效提高流畅度,代价是一定程度的画面质量损失。
- 尝试更换捕获模式。建议你每种模式都尝试一下。
间歇性卡顿
假设你的显卡性能对于运行 Magpie 绰绰有余,但依然遇到卡顿问题。请尝试下面的操作:
对于 Nvidia 用户
假设您使用的是 Windows 11 24H2
以下提示仅适用于 Nvidia 用户。Nvidia 显卡的驱动程序配置不当可能是造成卡顿的原因。
快速提示:将 Nvidia 驱动程序设置恢复为默认设置(全新安装)将解决大多数问题。但是,如果您坚持使用自己的设置,让我们解释一下驱动程序设置如何给程序带来麻烦。
缩放一段时间后出现奇怪的帧率下降
刚开始时一切正常(游戏 60 FPS / Magpie 60 FPS),但大约 10~15 秒后,游戏和 Magpie 的帧率都会下降到 37 FPS 左右,同时 GPU 占用率飙升至 100%,GPU 频率从约 1000MHz 降至 700MHz。
首先,如果你在游戏时使用了“电源管理模式:最佳功耗”,尝试将 Magpie 设为“首选最大性能”或“自适应”(我尚未测试“自适应”模式,效果不保证)。游戏本身保持“最佳功耗”模式即可。这样设置后,GPU 频率将不会异常下降。
Nvidia App 与 Nvidia 控制面板
不过,我的一台电脑即便使用上述方法仍然无法解决,而其他设备都能正常恢复。经过调查发现,Nvidia App 和 Nvidia 控制面板之间存在兼容性问题。如果你使用 Nvidia App 修改了驱动设置,然后在控制面板中修改相同的设置,可能会导致控制面板崩溃,或出现“访问被拒绝”的错误。此外,Nvidia App 进行的驱动设置更改不会真正应用到游戏或程序。
如果你使用的是 Nvidia App 11.0.2.341 版本,并搭配 572.16 版驱动,请不要通过 Nvidia App 调整 Nvidia 驱动设置。解决方案如下:
- 关闭 Nvidia App 和 Nvidia 控制面板。
- 进入 C:\ProgramData\NVIDIA Corporation\Drs 目录,删除所有 .bin 文件,例如 nvdrsdb0.bin、nvdrsdb1.bin、nvdrssel.bin、update.bin 等。
- 重新打开 Nvidia 控制面板,手动重新配置所有全局设置和特定程序的设置。
- 之后避免使用 Nvidia App 修改驱动设置。
画面看起来不如原生游戏窗口流畅
使用 Graphics Capture 或 Desktop Duplication 时,即使游戏和 Magpie 都是 60 FPS,画面仍然不够流畅。
调查结果表明,这可能与垂直同步有关。至少在 Windows 11 24H2 版本中,游戏必须开启垂直同步,才能保证 WGC 和 DXGI 捕获模式不会丢帧。否则,即使捕获和游戏都运行在 60 FPS,仍可能发生帧丢失或重复帧现象。
推荐的垂直同步设置:
- 游戏:使用传统垂直同步模式,例如:
- “使用 3D 应用程序设置”并在游戏内启用 V-Sync
- 直接选择“垂直同步:开”
- 不要使用以下选项:
- 关闭垂直同步
- “垂直同步:快速”模式
- 未测试但可能有效的选项:
- “垂直同步:自适应 / 自适应(半刷新率)”
对于 Magpie,请选择“使用 3D 应用程序设置”。
使用 Desktop Duplication 时丢帧严重
即使游戏 60 FPS / Magpie 60 FPS,仍然会遇到大量丢帧问题。我发现这种情况出现在 Magpie v0.10.6 版本。解决方法:
- 在 Magpie 设置中启用垂直同步,并在 Nvidia 控制面板中将 Magpie 的垂直同步设置为“使用 3D 应用程序设置”。
- 升级到 Magpie v0.11.1 也能解决此问题。
GPU 使用率接近 100% 时 Magpie 丢帧严重
同时,游戏帧率略低于显示器帧率,例如游戏帧率 57 FPS / 显示器帧率 60 Hz。如果不使用 Magpie,原生游戏窗口看起来很流畅。
尝试关闭“硬件加速 GPU 计划”并重启。我发现,当 GPU 负载过重且 GPU 计划开启时,WGC 和桌面复制都无法正确处理帧。关闭 GPU 计划后,游戏帧率仍然很低,但 Magpie 不会再“视觉上”低于 10 FPS。
屏幕观感不流畅,但帧率看起来正常
游戏 60 FPS / Magpie 60 FPS / 显示器 60 Hz,但出现丢帧。这种情况在未缩放、直接运行游戏窗口时也会发生。
请检查是否启用了“最大帧率限制”和垂直同步。例如,在上述情况下,如果你已经打开了垂直同步,同时将最大帧率限制设为 60 FPS,请移除该限制。
如果你有其他帧率限制程序(如 MSI Afterburner RTSS),也请将其关闭。
常见误区:
- 将“最大帧率”设置为全局 60 FPS,然后对某些程序关闭帧率限制,这实际上不会如你所愿生效。如果你对程序关闭了最大帧率限制和垂直同步,但启用了全局最大帧率,游戏和 Magpie 仍会遵循全局的帧率限制。
- 有人将“最大帧率”视作更优的垂直同步方法,理由是“这样可以降低输入延迟”。其实并非如此。最大帧率限制并不是垂直同步,它无法保证每一帧都能被完整呈现,而传统的垂直同步正是为此目的而设计的。
低延迟模式
如果遇到其他奇怪的现象,可以检查这些选项。我不确定 Magpie 是否有这些问题,但对于 Lossless Scaling,使用“低延迟模式:超高”会导致 WGC API 缩放后拖拽鼠标时,释放鼠标按钮后鼠标位置和释放按钮时不一致。
为 Magpie 设置“低延迟模式:关闭”。但对于游戏,如果你确定启用“低延迟模式:超高”不会引发问题,也可以保留该设置。例如,一些旧的 DirectX 9 游戏在启用此模式后可能会出现掉帧或输入延迟问题,如果遇到这种情况,建议将其关闭。
对于 AMD 用户
欢迎分享更多性能优化技巧!你也可以查看 Nvidia 相关建议,看看其中哪些适用于你的配置。
超线程和大小核CPU
超线程与 Intel Alder Lake 大小核架构 CPU
如果你不想关闭超线程,可以使用批处理命令来限制游戏和 Magpie 的 CPU 亲和性(Affinity)。对游戏或其启动器使用 cmd.exe 批处理 start /affinity 0x55 "" "C:\path to\game.exe",游戏将继承父进程的 CPU 亲和性。对 Magpie 使用 start /affinity 0xaa。此外,你还可以调整游戏图形设置,尽量将游戏的 CPU 占用控制在 50% 以下(以 4 核 8 线程 CPU 为例,相当于使用 4 个物理核心)。
0x55 指定游戏在 4 核 CPU 的 0 2 4 6 逻辑核心上运行,0xaa 指定其他程序在 1 3 5 7 上运行。
如果需要提高进程优先级,可以使用 start /abovenormal 为游戏和 Magpie 设置“高于正常”优先级。但需要注意,某些游戏在设置 CPU 亲和性和提高进程优先级后可能更容易崩溃,具体原因不明。例如,dwm.exe 系统服务本身就以“高”优先级运行。若遇到稳定性问题,可以考虑改用高性能电源计划,让 CPU 长时间运行在最高频率。
0x55 和 0xaa 只是示例值,你可以使用 Bitsum CPU 亲和性计算器 来计算适合自己 CPU 的值。
此外,你也可以利用这种方法,强制游戏仅运行在 Intel Alder Lake 大小核架构的“大核”上,以获得更好的性能。
仍然卡顿?
- 更换捕获模式。建议你每种模式都尝试一下。
- 打开“禁用 DirectFlip”。DirectFlip 是一个用于降低输入延迟的技术,但可能和某些游戏不兼容。
- 试试切换使用的显卡。
- 提高 Magpie 的进程优先级以及在驱动中提高 Magpie 的优先级(如果有这个选项)。
- 如果上面的尝试不起作用,请提交一个 Issue (Performance)。
我想降低 Magpie 的功耗
在需要节省电量或降低发热时,请尝试下面的操作:
- 限制帧率。
- 更换为性能需求更低的效果。