《赛博朋克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主程序文件 , 简单替换几个代码 , 锐龙的利用率就能明显提高 , 性能也可以提升最多30%左右 。
《赛博朋克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锐龙多线程:原因找到了】只能坐等官方修复了 。
《赛博朋克2077》不支持AMD锐龙多线程:原因找到了文章插图


    推荐阅读