从《黑神话:悟空》聊 PC 游戏优化
2024年最火的 PC 游戏《黑神话:悟空》热度很高,首月销量破 2kw;但虚幻5 的性能要求也着实高,很多玩家抱怨高画质带不动,需要升级 CPU、显卡。
其实除了真金白银升级硬件,动手调配置优化也能极大提升帧数,下面分成CPU/GPU/OS三方面来说。
1.CPU相关
a.开启SAM/Resizable BAR
提升效果4%~8%
最早由 AMD 提出了 SAM(AMD Smart Access Memory)技术,中文译为:智能寻址显存技术来搭配自家的 CPU/GPU(其实还是利用了PCIE 的新特性)。后来 Nvidia/Intel也发展出了类似概念Resizable BAR.
在传统基于Windows的PC系统中,CPU处理器一次只能同时访问GPU的一部分显存(VRAM)并非整个显存,这限制了性能的发挥。
PCIExpress技术的Base Address Register基址寄存器可以定义映射多少个离散的GPU内存空间,一般来说,处理器只能访问显存的一小部分,通常仅限于256MB大小的映射内存,这个大小放在今天是远远不够用的,由于数据传输效率较低,CPU与GPU的性能并没有完全发挥出来。
AMD Smart Access Memory技术可以凭借PCIe4.0的高速带宽扩展数据通道,一次访问所有的内存,大大提升了数据传输效率,消除了之前的传输瓶颈以提升性能。
如何关闭请依据NV/AMD还是 Intel 显卡来具体关闭。
b.D加密
D 加密全称为Denuvo防篡改加密技术,很多热门3A 都会启用来防盗版。加密解密肯定消耗 CPU 资源,会导致6%~8%的帧数下降
;
但因为D 加密是持续收费的,所以很多厂家会在过了黄金销售期后移除,譬如《圣剑传说3:重制版》就在 4 个月后移除了 D 加密。
所以 CPU 较差的玩家可以等厂商移除 D 加密后再购买游戏。
c.APO(Intel Application Optimization)
Intel从 12代开始的异构大小核刷分很好,但不同核心因为异构与延迟的原因, 当游戏的多线程跨了大小核性能就差了;APO是 Intel官方是专为Intel 12 代及以后产品通过优化大小核心的调度从而实现提升游戏帧率的软件,最高可提升 18%的帧率。
d.Intel CPU设置 CPU 亲和性(Processor affinity)
Intel从 12 代开始引进大小核, 但小核性能比大核差很多,当游戏线程被调度到小核时性能很差,可以用Process Lasso来设置 CPU 亲和性,全绑大核就行了
e.AMD CPU 设置禁止跨 CCD
AMD的全大核CPU一般 8 核一个 CCD,所以超过 8 核的 CPU 可能会有跨 CCD场景,而跨 CCD的延迟是比较高的.
因为目前游戏很少有能利用超过 8 核心16 线程,所以这时可以用Process Lasso绑定游戏在一个 CCD 上,避免跨 CCD 延迟。
当然更好的选择是从源头禁止跨 CCD--购买AMD CPU 时直接买8大核
的 CPU 系列
f.禁用core parking
core parking是 CPU 的 C6 状态,用于当负载低时关闭一个或多个 CPU 核心节省功耗,但从低负载切到高负载场景时再唤醒这些休眠核心时会有启动延迟, ParkControl这个软件可以让所有核心保持全开。
g.用 Process Lasso禁用后台线程
前面已经推荐Process Lasso这个软件来绑定 CPU 核心,但这个软件的另一个王牌功能是用ProBalance 算法来动态降低高负载后台线程的优先级,避免后台线程把CPU 资源吃光从而保证前台线程的流畅稳定.
h.游戏设置全屏
游戏选项一般有全屏或窗口模式,建议设置全屏,因为这样只有游戏就是前台进程而其他软件都是后台进程,而 windows 进程调度器对前台进程会给更多 cpu 轮训时间间隔。
GPU相关
a.使用现代化的图形接口--DX12/Vulkan
相对于DX11、OpenGL等高层应用程序接口,继任者DX12/Vulkan这类低层应用程序接口为开发人员提供了更底层的硬件访问接口、充分利用多核 CPU、异步等特性,唯一的坏处就是学习曲线变陡了。
b.打开超分辨率
自 NV 的DLSS面世以来,AMD 的FSR、Intel 的XeSS、Epic的TSR层出不穷,效果也确实明显,可以提升 20%~50%的帧数
c.禁用DLSS3/FSR3
DLSS3、FSR3 这类插帧技术虽然能提升帧数,但会导致延迟增加、原始帧率会下降15%
左右;
所以插帧更像是原始高帧率的锦上添花,而不是本来就帧率比较低的雪中送炭;
AMD 官网建议原始帧率 60+才打开插帧,所以要是你的显卡原始帧率不到60 帧不如只打开DLSS2 或 FSR2这类超分辨率技术。
d.禁用Reflex、Anti-Lag
Reflex、Anti-Lag虽然能大幅降低延迟,但损失2.5%左右的帧数;所以更适合FPS/Moba/RTS等竞技游戏,而不是 3A 单机。
e.打开 VRS
与传统的单个像素着色操作只能应用于单个像素不一样,VRS可以使单个像素的着色渲染应用到多个像素上,让应用程序可以根据画面上的不同区域来应用不同的着色率。简单来说,就是通过不同区域的重要性,来决定不同区域画面的精细度,减少显卡的渲染负荷。
f.禁用光追
光追能让光照更真实,但很有时候开启后帧数下降到一半。所以可以禁用光追或者用虚幻 5 的Lumen全局光照(号称小光追)来代替硬件光追。
g.禁用垂直同步
垂直同步可以防止画面撕裂,但现在的显示器基本 G-Sync 或 Free-Sync 兼容,在帧率低于显示器刷新率时也不会出现画面撕裂;
所以假如你有个G-Sync 或 Free-Sync 兼容显示器,可以放心把垂直同步关闭且把最大帧率设的比显示器刷新率低几帧,这样也不会画面撕裂。
h.其他调整
这些设置都是牺牲某些人眼不敏感的方面来大幅提升性能,如:
关掉动态模糊
关掉体积云(volumnetric clouds)
关掉体积雾(volumnetric clouds)
拉低阴影(shadow)
拉低层次感(level of detail)
i.控制面板设置
以 NV 的控制面板为例,我参考了这个视频以及其他文章,设置如下:
桌面--启用开发者设置
3D设置--通过预览调整图像设置--使用“高级3D图像设置”
3D设置--管理3D设置--全局设置
OpenGL渲染GPU--{独立显卡}
Vulkan/OpenGL现行方法--优先本机
低延迟模式:开 # 假如游戏里打开reflex会覆盖这个
垂直同步:关 # 游戏里不要打开垂直同步,会被Nvidia这个配置覆盖
最大帧速率:关 #这里设置效果不好;直接游戏里锁帧--显示器刷新率减去3
后台应用程序最大帧速率:20
电源管理模式:最高性能优先
监视器技术:G-SYNC
着色器缓存大小:无限制
DirectX目录: %LocalAppData%\NVIDIA\DXCache
OpenGL and Vulkan目录:%LocalAppData%\NVIDIA\GLCache
纹理过滤-负LOD偏移:锁定
纹理过滤-质量:高质量
线程优化:开
虚拟现实预渲染帧数:1
首选刷新率:最高可用
3D设置--管理3D设置--程序设置
explorer.exe(c盘-windows目录下)--电源管理模式--高性能
dwm.exe(c盘-windows-system32目录下)--电源管理模式--高性能
image.png
OS优化
a.开启GPU 硬件加速
b.电源管理
假如是笔记本,默认电源策略可能是均衡模式,需要如下调整:
选择电源计划→高性能模式或野兽模式
c.关闭内存压缩
现在内存白菜价,如果 PC 的内存很大,可以关闭内存压缩
# 查看是否开启内存压缩
get--mmagent
# 关闭内存压缩
Disable-MMAgent -mc
# 打开内存压缩
Enable-MMAgent -mc
d.关闭VBS
e.关闭Hyper-V