[法环] PC 版效能问题解释与平台选择建议

楼主: dklassic (DK)   2022-03-13 18:36:23
根据 Steam 板板友建议重新整理文章,贴过来提供点资讯。
本文的目的是要协助解释清楚 PC 版的效能问题,降低偏方的尝试并且顺便给一点平台选
择的建议。
根据官方持续修正,这边的内容适用性可能会产生变化,还需要未来版本玩家阅读的时候
再自行做一些判断。
这篇的内容目前仅以现行版本 1.0.2 为准。未来可能会变更好或更糟,不知道。
结论先。
目前的效能主要受到两件事情影响:
-DX12 着色器编译(Shader Compilation)
-资料串流
两件事情都严重受限于 CPU 效能,也导致目前玩家真正能改善游戏表现的方法只有:
-使用单核效能越强越好的 CPU
-使用不需要即时编译著色器的平台(Xbox、PlayStation)
-使用 Linux 游玩 Proton 模拟的版本
不然就只能等 From Software 修好,除此之外任何其他现行手段全部都是偏方(以为有用
,但实际上完全没用的手段)。
而现行版本根据游玩体验的推荐顺序大约为:
1. PC 版(如果拥有极强单核效能的 CPU 或者用 Linux 玩 Proton 模拟版)
2. PS5 游玩 PS4 版(稳定 60FPS)
3. 搭配 VRR 游玩 XSX 版
4. PS5 版(平均 FPS 接近 60)
5. PS4 版(平均 FPS 在 30,但是有不稳定的 FPS 限制器)
6. PS4 Pro、Xbox One X 与一般情境下的 PC 版
(根据偏好取舍,前两者稳定但 FPS 低,后者可以有高 FPS 但是容易瞬间不稳定)
7. Xbox One 版(还是别玩了吧)
接下来会开始解释详细原因,但大多资料源于以下三部分析影片,如果可以英听的话直接
去听这三部最实际。
Digital Foundry 的:
https://youtu.be/5EtcrUrsl38
Elden Ring PC Performance Simply Isn't Good Enough
https://youtu.be/uVcfiBnX1c0
Elden Ring: PS5 vs Xbox Series X/S Tech Review -
The Best Ways to Play on Next-Gen Consoles
https://youtu.be/repwHeJYwFk
Elden Ring Last-Gen PS4/PS4 Pro vs Xbox One/One X:
Do You Really Need A Console Upgrade?
我这边的解释基本上可以说是翻译这三部影片的结论,加上我自己电脑执行起来的状况佐
证。
接下来的解释会分为几部分:
一、名词解释
1. 卡顿(Stutter)与理想的游戏体验
2. 受限于 CPU、GPU(CPU、GPU Bound)
3. DirectX API
二、PC 版效能问题解释
1. DX12 着色器编译问题
2. 资料串流问题
三、为何 Linux 版没有这些问题
四、常见问题回答
一、名词解释
1. 理想的游戏体验与卡顿(Stutter)
理想的游戏体验是完全稳定的 FPS,其次才是越高 FPS 越好。
举例来说一个 60Hz 的萤幕就是每秒更新 60 次画面,所以 60FPS(每次更新画面)与
30FPS(每两次更新画面)都是理想的体验。然而完全稳定的 30FPS 体验远优于平均起来
接近 60FPS 但是不稳定的画面。
所以当 FPS 不稳定时,就称之为“卡顿”(Stutter)。
2. 受限于 CPU、GPU (CPU、GPU Bound)
一款游戏执行起来的状况主要受到 CPU 与 GPU 影响。
虽然过去十年游戏越推越多多边形跟画面特效,让玩家容易把游戏跑起来卡直接跟 GPU 不
够好连结起来(受限于 GPU;GPU Bound),但是根据游戏设计,可能会是 CPU 不够好导
致游戏执行不顺(受限于 CPU;CPU Bound)。
简易的辨识法是:
-受限于 GPU 时,GPU 使用率会在 100%,与此同时 FPS 不稳定
(会出现平滑但波动的线条:

-受限于 CPU 时,GPU 使用率不会达到 100%,与此同时 FPS 有严重的不稳定
(会出现像这样的云霄飞车:

当受限于 CPU 时,因为 GPU 达不到 100%。所以就算你有全世界最好的显卡,或者把解
析度、特效设定降低都没有帮助。
3. DirectX API
要游戏开发者直接跟电脑硬件解释他该做什么有点困难,所以通常开发者会找个翻译去跟
电脑硬件沟通。Windows 专用的这个翻译叫做 DirectX,现在最新版本是第 12 版简称
DX12,第 11 版称 DX11。
就酱。
二、PC 版效能问题解释
1. DX12 着色器编译问题
着色器(Shader)可以很粗略地解释为显示卡要知道怎样显示一个东西的手段,稍微不幸
的是这个东西要针对每个电脑配备重新产生一次,这个过程要用 CPU 来编译。
由于家用主机硬件配置是固定的,所以开发者可以预先编译好主机需要的版本。
因此只有 PC 版需要现场即时编译。
在 DX11 时,DX11 作为一个翻译会偷偷地帮开发者处理好,而且是在不影响游戏本体效
能的情况下进行。然而本次法环只使用 DX12,DX12 将处理编译的工作交给开发者分配,
没有特别处理的情况下就会在要显示的当下编译。
所以 PC 版会发生卡顿的时机大概就是:
-第一次跳跃
-第一次攻击
-王的每一个新招
任何一个视觉效果第一次出现的瞬间,所以甚至可以半开玩笑地说王的花招越多,你的游
戏就会卡得越惨。
好消息是只有第一次出现时需要编译,所以某方面来说你的游戏会越玩越顺。
直到游戏更新一次,你就要全部重新计算。
2. 资料串流问题
其实应该不是很需要解释吧,就是开放世界要根据玩家位置加载不同东西,因为不可能同
时加载全部所以进进出出就会需要 CPU 做事。
应该所有玩家都会在引导之始的大树守卫和风暴山丘卡得比较严重,这就是资料串流造成
的。无论遇上几次都会发生。
至于要解释 From Software 的资料管理不理想之处的话......参考这则 Twitter 显现玩
家在地下洞窟探索时,实际上加载的地图到底有多大:
https://twitter.com/manfightdragon/status/1502559578315112448
三、为何 Linux 版没有这些问题
一般情况下 Linux 不能直接执行 Windows 程式,所以为了让 Linux 使用者能更顺利地
游玩 Windows 游戏而不需要开发者制作 Linux 版,Valve 制作了名为 Proton 的另一层
翻译让 Windows 游戏可以直接在 Linux 上执行。
简单来说一般的 Windows 游戏是这样执行的:

使用 Proton 在 Linux 上执行 Windows 游戏长这样:

所以 Proton 可以拦胡指令,偷偷改成比较理想的形状。而 Proton 也会预先根据你的硬
体配置下载好你需要的已编译著色器(Compiled Shader),让你执行游戏时不需要现场
另外计算。
因此目前 Linux 版透过 Proton 模拟意外成为 PC 版本中最顺畅的版本。
四、常见问题回答
Q:可是我[插入某个偏方步骤]后游戏变顺了?
A1:可能是错觉,因为上述第一个问题只有在第一次遭遇的时候会卡,所以你遭遇后使用
了偏方,然后回去重复第二次就不会卡了。
A2:呃,恭喜你解决了某个跟上述无关的你专属的问题,你接下来还是得面对上面相同的
问题。
Q:什么是极强单核效能的 CPU?
A:讲简单点,AMD Ryzen 5000 使用者和 Intel 12 代 CPU 使用者应该玩得都顺很多。
Q:可是我用[插入硬件配备]跑得很顺啊?
A:游戏客观跑得很烂,但每个人对游戏执行顺畅度的容忍度差异很多,自己可以接受的
话很好,但不是拿来说其他人也应该要接受的借口。
Q:可是我用[插入硬件配备]可以稳 60FPS?
A:除非你有单核极端强的 CPU 不然这是不可能的。平均起来可能会很接近 60FPS,但是
一定不是真正的完全 60FPS。(我的 CPU 是 AMD Ryzen 5950X 的情况下在湖边站着不动
都会在 58~60FPS 之间跳动)
Q:DX12 的锅啦!
A:是 From Software 选择使用 DX12 然后没用好的锅,并且还在没有处理完问题的情况
下就强行上市。
Q:From Software 技术力不够啦,不要再继续用客制引擎,去用 Unreal Engine 啦!
A:Unreal Engine 还是要面对相同的问题......参见另一款有着几乎一模一样的问题的
Unreal Engine 游戏: https://youtu.be/yV0kDvZqNpI
Q:如果我想要验证一个偏方有没有效的话该怎么做?
A1:验证对着色器编译的帮助的话,可以删除已编译著色器暂存盘然后重新测试,但要确
保你触发的是相同的视觉效果可能很难,毕竟同一招可能会有四五种特效变种版本。
(NVIDIA 的暂存盘在 C:\Users\[使用者名称]\AppData\Local\NVIDIA)
A2:验证对资料串流的帮助的话就试着重复在参考上述有显著资料串流卡顿的地方走相同
路径,纪录 FPS 状况对照。
Q:From Software 什么时候修得好?
A:我不会通灵,但是游戏开发真的很复杂,所以短则一天,多则半年都有可能。
以上提供参考,有空的话我会试着多回答点问题,但不保证。
作者: sumarai (Pawn)   2022-03-13 18:37:00
以黑魂一的经验,玩家快修好了
作者: mathtsai (mathtsai)   2022-03-13 18:38:00
我玩法环都玩到CPU过热QQ
作者: tsukirit (道法自然)   2022-03-13 18:39:00
并没有 我5900X 顿成狗AMD现在单核又输了 R23 大概1500分 12代i皇 有1900分
作者: s32244153 (Hir0)   2022-03-13 18:40:00
如没意外依照惯例 等官方还不如靠民间玩家
作者: s952013 (AllenSkywalker)   2022-03-13 18:41:00
搞这么麻烦干脆不要玩了
作者: reader2714 (无毁的湖光)   2022-03-13 18:41:00
都没提到EAC问题耶..
作者: erisiss0 (965005)   2022-03-13 18:41:00
所以才有那种偷改dx12的偏方阿
作者: jorden0804 (无极呆呆)   2022-03-13 18:41:00
我i12的不会卡 3700的偶尔会掉祯
作者: reader2714 (无毁的湖光)   2022-03-13 18:42:00
EAC肯定是会影响的吧.w.
作者: erisiss0 (965005)   2022-03-13 18:42:00
因为eac问题直接关掉就好了不用提吧,那也不是fs能修的
作者: mc3308321 (阿阿阿阿)   2022-03-13 18:44:00
推,这篇超需要
作者: waggamsn (那位路人拿了我的钱包)   2022-03-13 18:49:00
我觉得我自己pc大作玩太少反而觉得很顺
作者: rockman73   2022-03-13 18:51:00
除了刚出关的大树跟后面化圣雪原井喷灵庙我是还没有特别FPS大爆喷过
作者: tung3567752 (渡鸦已连线)   2022-03-13 18:52:00
其实如果要锁60,没必要用到DX12,DX11就好了
作者: rockman73   2022-03-13 18:52:00
3900X+3080
作者: william456 (Eureka)   2022-03-13 18:52:00
Ue4很可怕,FF7remark不改CG会卡
作者: jay920314 (Jay_9696)   2022-03-13 18:52:00
推分析 结论FS太废
作者: rockman73   2022-03-13 18:53:00
主要是我用144HZ的萤幕 60看起来又更卡了..
作者: a125g (期末崩溃讨嘘哥)   2022-03-13 18:53:00
不只显卡要够力CPU也要够力
作者: jay920314 (Jay_9696)   2022-03-13 18:53:00
还有图那个G胖 笑了
作者: jorden0804 (无极呆呆)   2022-03-13 18:53:00
而且这代画面全开也没特别好
作者: tung3567752 (渡鸦已连线)   2022-03-13 18:53:00
然后我感觉它们技术不足的问题会越来越严重
作者: a125g (期末崩溃讨嘘哥)   2022-03-13 18:54:00
看steam版文章就是DX11有些功能到DX12变成开发者自己要负责
作者: jay920314 (Jay_9696)   2022-03-13 18:54:00
萤幕2K170自己是还没接枝贵族就在NV面板试垂直同步哪个好了
作者: jorden0804 (无极呆呆)   2022-03-13 18:54:00
日厂通病 技术不够
作者: labbat (labbat)   2022-03-13 19:12:00
对开发者而言脚本式api太甜蜜了,使用起来比编译式api容易
作者: Bencrie   2022-03-13 19:15:00
我是建议不要开 Steam 的 shader pre-caching 啦如果你游戏很多,那你每天开 Steam 都会下载下到死 XDmesa 自己就有 local 端的 shader cacheNVIDIA 就 ... 请有卡的人补充
作者: jimmy90946 (Laver_offscum)   2022-03-13 19:16:00
推分析
作者: sustto (sustto)   2022-03-13 19:17:00
作者: yen0829   2022-03-13 19:20:00
着色编译在硬盘读取跟不上的时候,会发生大量卡顿,例如刚传送到新地方或出洞窟,这是PC老问题了,很多游戏都这样
作者: ezlifee1140 (ezlife)   2022-03-13 19:25:00
5800X正常玩,没顿过
作者: jackshadow (夜晚的帝王)   2022-03-13 19:28:00
3050 连续玩8个小时大概有两次极短暂卡顿 可以说完全顺跑
作者: LunaDance (s;omo;pbrupi)   2022-03-13 19:30:00
原来dx12默认不会先编译shader...
作者: reall860523 (司康贼蜜雪儿)   2022-03-13 19:41:00
5600X+3060 跑1080还是会飘== 只是大部分都是稳60,两个使用率都很低真的等N网玩家自己修算了
作者: googlexxxx (googlexxxx)   2022-03-13 19:44:00
上面AMD如果卡顿先到BIOS关fTPM或改Windows 10,已经有证实AMD有核心bugIntel 12代一定要上11才有大小核能力发挥,AMD最近发现一个致命问题就是fTPM会导致整体效能下降甚至爆音的情况。所以AMD平台请先暂时不要跟风去升上Windows 11
作者: silver00 (Seeker)   2022-03-13 19:50:00
作者: GenShoku (放课后PLAY)   2022-03-13 19:53:00
所以steam deck反而比较顺 可以
作者: reall860523 (司康贼蜜雪儿)   2022-03-13 19:57:00
Win10一样要关?
作者: googlexxxx (googlexxxx)   2022-03-13 20:06:00
fTPM AMD BIOS默认是开的(最近三年的电脑,更之前的不确定),就算没用也要关。原因是amd在开机的时候就将内存圈了一部分去做加密资料,然后那区资料会有来不及释放的问题,造成整体效能下降https://reurl.cc/02bQVKAMD user比较尴尬的是,这并不是法环的包
作者: a1919979 (狐狸精婊子)   2022-03-13 20:59:00
所以现在是linux玩家的胜利了吗 连os也要魂系一下
作者: y120196276 (FrogW)   2022-03-13 22:01:00
从来没因为怪物出招卡过,都是在特定点,像是大树或是下水道卡顿
作者: etetat2 (炸春卷)   2022-03-13 23:48:00

Links booklink

Contact Us: admin [ a t ] ucptt.com