《賽博朋克2077》不支持AMD銳龍多線程 原因找到了

《賽博朋克2077》徹底火了,AMD似乎成了最大輸家——顯卡方面,NVIDIA是獨家合作夥伴,光追、DLSS技術都得到支持,AMD的光追卻不受待見;處理器方面,銳龍疑似遭到「負優化「,SMT多線程技術根本沒有用上,Intel超線程卻沒問題。

相對來說,AMD銳龍受到的沖擊更大,核心數越少越明顯。16核心的銳龍9 5950X、12核心的銳龍9 5900X沒有太明顯的影響,6核心的銳龍5 5600X就慘了,綜合性能原本堪比i9-9900K,但在《賽博朋克2077》里只相當於i5-10400F,因為後者可以跑滿12個線程。

更詭異的是,有網友發現,手動修改《賽博朋克2077》的exe主程序文件,

《賽博朋克2077》不支持AMD銳龍多線程 原因找到了

以上是修改代碼前後的銳龍9 5950X占用率表現,16個邏輯核心修改前幾乎完全閒置,修改後利用率超過了60%,當然仍未完全發揮。

《賽博朋克2077》不支持AMD銳龍多線程 原因找到了

以上是修改代碼後的銳龍5 1600占用率表現,邏輯核心和物理核心表現幾乎完全一致。

到底是怎麼回事呢?CD Projekt RED一直沒有官方回應,民間大神們又出手了。

Reddit的網友CookiePLMonster在深入研究後提出,《賽博朋克2077》使用了非正式的AMD GPUOpen偽代碼來優化處理器調度器,但這些代碼本來的優化對象是AMD推土機架構的FX系列處理器,在銳龍等其他AMD架構上就會有反效果。

《賽博朋克2077》遊戲只有檢測到「AuthenticAMD」處理器在字符串、「family=0x15「處理器標識的時候,也就是發現處理器是推土機架構,才會啟用邏輯核心,而這也是Windows系統針對AMD推土機架構的優化之一。

如果是其他AMD處理器,包括最新的銳龍,《賽博朋克2077》就只會利用物理核心,而無視邏輯核心,SMT多線程技術自然就沒有用武之地。

我們知道,AMD推土機架構採用了每兩個核心共享浮點單元的模塊式設計,非常依賴系統、軟件的特殊優化,銳龍架構則是獨立核心加SMT多線程,自然不能用同樣的方式去支持和優化。

TechPowerUp的開發大神W1zzard(GPU-Z就出自他之手)在進行研究後,證實了上述發現,《賽博朋克2077》確實在使用2017年的AMD GPUOpen優化代碼,導致多線程技術只針對推土機架構有效,而對銳龍架構無效。

《賽博朋克2077》不支持AMD銳龍多線程 原因找到了

目前尚不清楚這是「波蘭蠢驢」故意為之,還是一個意外的Bug,但無論如何都有點說不過去。

只能坐等官方修復了。

《賽博朋克2077》不支持AMD銳龍多線程 原因找到了

作者:上方文Q
來源:快科技