相對來說,AMD銳龍受到的沖擊更大,核心數越少越明顯。16核心的銳龍9 5950X、12核心的銳龍9 5900X沒有太明顯的影響,6核心的銳龍5 5600X就慘瞭,綜合性能原本堪比i9-9900K,但在《賽博朋克2077》裡隻相當於i5-10400F,因為後者可以跑滿12個線程。
更詭異的是,有網友發現,手動修改《賽博朋克2077》的exe主程序文件,簡單替換幾個代碼,銳龍的利用率就能明顯提高,性能也可以提升最多30%左右。
以上是修改代碼前後的銳龍9 5950X占用率表現,16個邏輯核心修改前幾乎完全閑置,修改後利用率超過瞭60%,當然仍未完全發揮。
以上是修改代碼後的銳龍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優化代碼,導致多線程技術隻針對推土機架構有效,而對銳龍架構無效。
目前尚不清楚這是“波蘭蠢驢”故意為之,還是一個意外的Bug,但無論如何都有點說不過去,隻能坐等官方修復瞭。