[法環] PC 版效能問題解釋與平台選擇建議

看板C_Chat作者 (DK)時間2年前 (2022/03/13 18:36), 2年前編輯推噓25(26143)
留言70則, 32人參與, 2年前最新討論串1/1
根據 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 不穩定 (會出現平滑但波動的線條: https://imgur.com/5pAetrZ
) -受限於 CPU 時,GPU 使用率不會達到 100%,與此同時 FPS 有嚴重的不穩定 (會出現像這樣的雲霄飛車: https://imgur.com/qNCDIhH
) 當受限於 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 但當然所顯現的那些模型應該都是超低精細度的遠景用模型,佔據記憶體總量應該沒有很 多,頂多只能說不夠理想 XD 三、為何 Linux 版沒有這些問題 一般情況下 Linux 不能直接執行 Windows 程式,所以為了讓 Linux 使用者能更順利地 遊玩 Windows 遊戲而不需要開發者製作 Linux 版,Valve 製作了名為 Proton 的另一層 翻譯讓 Windows 遊戲可以直接在 Linux 上執行。 簡單來說一般的 Windows 遊戲是這樣執行的: https://imgur.com/CvE96rz
使用 Proton 在 Linux 上執行 Windows 遊戲長這樣: https://imgur.com/kiq1GPA
所以 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:我不會通靈,但是遊戲開發真的很複雜,所以短則一天,多則半年都有可能。 以上提供參考,有空的話我會試著多回答點問題,但不保證。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.124.97 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1647167786.A.094.html ※ 編輯: dklassic (1.169.124.97 臺灣), 03/13/2022 18:36:53

03/13 18:37, 2年前 , 1F
以黑魂一的經驗,玩家快修好了
03/13 18:37, 1F

03/13 18:38, 2年前 , 2F
我玩法環都玩到CPU過熱QQ
03/13 18:38, 2F

03/13 18:39, 2年前 , 3F
並沒有 我5900X 頓成狗
03/13 18:39, 3F

03/13 18:40, 2年前 , 4F
AMD現在單核又輸了 R23 大概1500分 12代i皇 有1900分
03/13 18:40, 4F

03/13 18:40, 2年前 , 5F
如沒意外依照慣例 等官方還不如靠民間玩家
03/13 18:40, 5F

03/13 18:41, 2年前 , 6F
搞這麼麻煩乾脆不要玩了
03/13 18:41, 6F

03/13 18:41, 2年前 , 7F
都沒提到EAC問題耶..
03/13 18:41, 7F

03/13 18:41, 2年前 , 8F
所以才有那種偷改dx12的偏方阿
03/13 18:41, 8F

03/13 18:41, 2年前 , 9F
我i12的不會卡 3700的偶爾會掉禎
03/13 18:41, 9F

03/13 18:42, 2年前 , 10F
EAC肯定是會影響的吧.w.
03/13 18:42, 10F

03/13 18:42, 2年前 , 11F
因為eac問題直接關掉就好了不用提吧,那也不是fs能修的
03/13 18:42, 11F

03/13 18:44, 2年前 , 12F
推,這篇超需要
03/13 18:44, 12F

03/13 18:49, 2年前 , 13F
我覺得我自己pc大作玩太少反而覺得很順
03/13 18:49, 13F

03/13 18:51, 2年前 , 14F
除了剛出關的大樹跟後面化聖雪原井噴靈廟我是還沒有特
03/13 18:51, 14F

03/13 18:52, 2年前 , 15F
別FPS大爆噴過
03/13 18:52, 15F

03/13 18:52, 2年前 , 16F
其實如果要鎖60,沒必要用到DX12,DX11就好了
03/13 18:52, 16F

03/13 18:52, 2年前 , 17F
3900X+3080
03/13 18:52, 17F

03/13 18:52, 2年前 , 18F
Ue4很可怕,FF7remark不改CG會卡
03/13 18:52, 18F

03/13 18:52, 2年前 , 19F
推分析 結論FS太廢
03/13 18:52, 19F

03/13 18:53, 2年前 , 20F
主要是我用144HZ的螢幕 60看起來又更卡了..
03/13 18:53, 20F

03/13 18:53, 2年前 , 21F
不只顯卡要夠力CPU也要夠力
03/13 18:53, 21F

03/13 18:53, 2年前 , 22F
還有圖那個G胖 笑了
03/13 18:53, 22F

03/13 18:53, 2年前 , 23F
而且這代畫面全開也沒特別好
03/13 18:53, 23F

03/13 18:53, 2年前 , 24F
然後我感覺它們技術不足的問題會越來越嚴重
03/13 18:53, 24F

03/13 18:54, 2年前 , 25F
看steam版文章就是DX11有些功能到DX12變成開發者自己要負責
03/13 18:54, 25F

03/13 18:54, 2年前 , 26F
螢幕2K170自己是還沒接枝貴族就在NV面板試垂直同步哪個
03/13 18:54, 26F

03/13 18:54, 2年前 , 27F
好了
03/13 18:54, 27F

03/13 18:54, 2年前 , 28F
FS沒有處理到這塊
03/13 18:54, 28F

03/13 18:54, 2年前 , 29F
不然60配撕裂畫面實在太美
03/13 18:54, 29F

03/13 18:54, 2年前 , 30F
本質上還是主機安定
03/13 18:54, 30F

03/13 18:54, 2年前 , 31F
日廠通病 技術不夠
03/13 18:54, 31F

03/13 19:12, 2年前 , 32F
對開發者而言腳本式api太甜蜜了,使用起來比編譯式api容易
03/13 19:12, 32F

03/13 19:15, 2年前 , 33F
我是建議不要開 Steam 的 shader pre-caching 啦
03/13 19:15, 33F

03/13 19:15, 2年前 , 34F
如果你遊戲很多,那你每天開 Steam 都會下載下到死 XD
03/13 19:15, 34F

03/13 19:15, 2年前 , 35F
mesa 自己就有 local 端的 shader cache
03/13 19:15, 35F

03/13 19:16, 2年前 , 36F
NVIDIA 就 ... 請有卡的人補充
03/13 19:16, 36F

03/13 19:16, 2年前 , 37F
推分析
03/13 19:16, 37F

03/13 19:17, 2年前 , 38F
03/13 19:17, 38F

03/13 19:20, 2年前 , 39F
著色編譯在硬碟讀取跟不上的時候,會發生大量卡頓,例如
03/13 19:20, 39F

03/13 19:20, 2年前 , 40F
剛傳送到新地方或出洞窟,這是PC老問題了,很多遊戲都這
03/13 19:20, 40F

03/13 19:20, 2年前 , 41F
03/13 19:20, 41F

03/13 19:25, 2年前 , 42F
5800X正常玩,沒頓過
03/13 19:25, 42F

03/13 19:28, 2年前 , 43F
3050 連續玩8個小時大概有兩次極短暫卡頓 可以說完全
03/13 19:28, 43F

03/13 19:28, 2年前 , 44F
順跑
03/13 19:28, 44F

03/13 19:30, 2年前 , 45F
原來dx12預設不會先編譯shader...
03/13 19:30, 45F

03/13 19:41, 2年前 , 46F
5600X+3060 跑1080還是會飄== 只是大部分都是穩60,
03/13 19:41, 46F

03/13 19:41, 2年前 , 47F
兩個使用率都很低
03/13 19:41, 47F

03/13 19:41, 2年前 , 48F
真的等N網玩家自己修算了
03/13 19:41, 48F

03/13 19:44, 2年前 , 49F
上面AMD如果卡頓先到BIOS關fTPM或改Windows 10,已經
03/13 19:44, 49F

03/13 19:44, 2年前 , 50F
有證實AMD有核心bug
03/13 19:44, 50F

03/13 19:47, 2年前 , 51F
Intel 12代一定要上11才有大小核能力發揮,AMD最近發
03/13 19:47, 51F

03/13 19:47, 2年前 , 52F
現一個致命問題就是fTPM會導致整體效能下降甚至爆音的
03/13 19:47, 52F

03/13 19:47, 2年前 , 53F
情況。所以AMD平台請先暫時不要跟風去升上Windows 11
03/13 19:47, 53F

03/13 19:50, 2年前 , 54F
03/13 19:50, 54F

03/13 19:53, 2年前 , 55F
所以steam deck反而比較順 可以
03/13 19:53, 55F

03/13 19:57, 2年前 , 56F
Win10一樣要關?
03/13 19:57, 56F

03/13 20:02, 2年前 , 57F
結果我根本沒開起來過
03/13 20:02, 57F

03/13 20:06, 2年前 , 58F
fTPM AMD BIOS預設是開的(最近三年的電腦,更之前的
03/13 20:06, 58F

03/13 20:06, 2年前 , 59F
不確定),就算沒用也要關。原因是amd在開機的時候就
03/13 20:06, 59F

03/13 20:06, 2年前 , 60F
將記憶體圈了一部分去做加密資料,然後那區資料會有來
03/13 20:06, 60F

03/13 20:06, 2年前 , 61F
不及釋放的問題,造成整體效能下降
03/13 20:06, 61F

03/13 20:08, 2年前 , 62F
03/13 20:08, 62F

03/13 20:10, 2年前 , 63F
AMD user比較尷尬的是,這並不是法環的包
03/13 20:10, 63F

03/13 20:59, 2年前 , 64F
所以現在是linux玩家的勝利了嗎 連os也要魂系一下
03/13 20:59, 64F

03/13 22:01, 2年前 , 65F
從來沒因為怪物出招卡過,都是在特定點,像是大樹或
03/13 22:01, 65F

03/13 22:01, 2年前 , 66F
是下水道卡頓
03/13 22:01, 66F

03/13 23:48, 2年前 , 67F
03/13 23:48, 67F
※ 編輯: dklassic (1.169.124.97 臺灣), 03/14/2022 02:34:19

03/14 12:12, 2年前 , 68F
推專業
03/14 12:12, 68F

03/14 17:18, 2年前 , 69F
linux steam proton跑起來最順,有相關資料嗎
03/14 17:18, 69F

03/14 17:18, 2年前 , 70F
何來最順之說
03/14 17:18, 70F
3/17 補個 Steam Deck 測試影片:https://youtu.be/o1HuX2_Hhss
裡面還有對照 Proton 修正前的表現。 算是相對性的,所以我才在前面先假定「理想的遊戲體驗」是「FPS 越穩定越好」。 理論上 PC 平台可以藉由無上限的硬體來撐起遊戲體驗,但因為現在著色器編譯的實作方 式導致物理上不太可能有硬體可以取得完美無瑕的體驗(=完全穩定的 60FPS),頂多相 對能被接受。 後述 Proton 因為解決掉這部分的問題,所以雖然透過轉譯執行,平均效能應該要是下降 的,但由於不會撞到編譯造成的卡頓,穩定度反而比較高。 簡單來說就是同硬體雖然平均 FPS 不一定比 Windows 高,但是 95%、99% FPS 測起來都 會比現行 Windows 版高非常多。 ※ 編輯: dklassic (1.169.124.97 臺灣), 03/15/2022 01:52:37 ※ 編輯: dklassic (1.169.97.86 臺灣), 03/17/2022 02:27:14 ※ 編輯: dklassic (1.169.97.86 臺灣), 03/17/2022 02:35:16
文章代碼(AID): #1YBSag2K (C_Chat)