電玩/軟體 《電馭叛客 Cyberpunk 2077》於 AMD Ryzen 上無法使用多執行緒? 自己優化修改

soothepain

full loading
已加入
9/17/03
訊息
20,658
互動分數
1,912
點數
113
網站
www.coolaler.com
有多數 AMD 用戶反映在玩《Cyberpunk 2077》的時候 CPU 使用率似乎不高,大概只有一半,這並不是好事,而是有一半在睡覺,這會影響到遊戲效能,不過 Intel 處理器倒是沒有這問題,原因是出在執行程序處理器調度。

2077_amd_cpu_bug_3.jpg



目前《Cyberpunk 2077》並沒有針對 Ryzen 處理器用上多執行緒,以至於 CPU 使用率會較低,不過效能影響對於那些核心過高的如 Ryzen 9 5950X、5900X 影響不大,但核心數如果只有6顆或更少的就有相當效能影響,Ryzen 5 5600X 與 Core i5-10400F 的效能在這遊戲上差不多,主因就是 AMD 沒有用上 SMT 多執行緒,而 Intel HyperThreading 正常使用。

2077_amd_cpu_bug_1.jpg



目前在 reddit 上有玩家分享,修改執行檔就可以讓 AMD Ryzen 處理器發揮應有的功能,步驟如下。
  1. 下載 HxD hex 編輯器
  2. 找到你的 Cyberpunk2077.exe 這檔案,每個遊戲平台位置不同,GOG 位置在 Cyberpunk 2077\bin\x64;Steam 位置在 Steam\steamapps\common\Cyberpunk 2077\bin\x64\Cyberpunk2077.exe
  3. 備份 Cyberpunk2077.exe 這個檔案
  4. 使用 HxD 編輯器開啟 Cyberpunk2077.exe ,編輯器應該會顯示16進制
  5. 按 Ctrl+F 搜尋將列更改為16進制值
  6. 在搜尋字串中輸入“ 75 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08”,不加引號
  7. 並將其取代為 “EB 30 33 C9 B8 01 00 00 00 0F A2 8B C8 C1 F9 08” 後存檔
  8. 執行修改後的 Cyberpunk2077.exe
  9. 如果無法執行請還原原本備份的 Cyberpunk2077.exe 檔案

《Cyberpunk 2077》無法調用 AMD Ryzen 處理器多執行緒的原因,主要是《Cyberpunk 2077》使用 AMD GPUOpen 偽代碼來優化其處理器調度程序,最初旨在讓應用程序在使用AMD“ Bulldozer”處理器時使用更多執行緒。但在檢測到非 Bulldozer AMD 處理器時具有相反的效果。該遊戲尋找“ AuthenticAMD”處理器品牌和“ family = 0x15”(AMD K15 或Bulldozer 衍生產品),然後才使用“邏輯處理器”(Windows OS 調度程序將其視為 Bulldozer 優化的一部分)。當檢測到任何其他處理器(包括較新的 AMD 處理器)時,該代碼使遊戲調度程序僅將流量發送到物理核心,而不發送到邏輯處理器。

Techpowerup 使用了二進製文件來驗證這些,下面可以找到代瑪的註釋。該遊戲確實使用了2017年的舊版 GPUOpen 代碼來識別 AMD 處理器,這是 AMD Ryzen 處理器效能欠佳的原因。顯然這看起來像是錯誤或疏忽,而不是故意的。目前大概就只能手動更改,相信官方應該會很快速的處理這件事並透過更新檔修正。

2077_amd_cpu_bug_2.jpg







來源
 
最後編輯:
  • Like
Reactions: JHL88

ken9028

進階會員
已加入
9/29/06
訊息
242
互動分數
7
點數
18
猜,該不會是用針對intel優化的編譯程式編譯的吧?
 
▌延伸閱讀