为什么同一款游戏,主机上跑得顺滑,到了PC上却一进新场景就卡一下?这个问题的答案,指向一个叫"着色器编译卡顿"的东西。而一款名为 Shader Compilation Stutter Killer(简称 SCSKiller)的免费开源工具,正试图把它从PC游戏里清出去。

打开网易新闻 查看精彩图片

先把概念拆开。着色器是告诉GPU如何绘制阴影、反射、光照等效果的小程序。PC开发不基于固定硬件,而主机厂商可以在发售前针对PS5或Xbox Series X的确切规格预编译着色器——这就是为什么这更像是PC专属的毛病。

卡顿和掉帧不是一回事。掉帧通常源于硬件瓶颈,GPU或CPU来不及渲染某些画面元素或物理任务。着色器卡顿则是渲染管线不得不在实时状态下生成效果,下一帧等着着色器编译完,画面就出现一次短暂顿挫。在不少现代PC游戏、尤其是虚幻5引擎作品里,这种情况相当常见。

还有一类更麻烦的CPU编译卡顿,屏幕或GPU技术救不了。它可能持续几秒,把游戏画面压到0帧,彻底打断操作。原因在于PC是第一次见到某个效果——所以刚进入新区域时,编译卡顿往往最严重。

SCSKiller 瞄准的正是这一类问题。安装后,工具会自动读取游戏库,把最能受益的作品列进"推荐编译"清单。它的思路是在启动游戏前,先把着色器预编译进显卡的驱动缓存。

实测结果如何?在《寂静岭f》《寂静岭 Townfall》《艾尔登法环》和《巫师3:狂猎》重制版上,编译卡顿基本被消除。其中《Townfall》和《狂猎》在预编译之前,因着色器编译卡顿几乎无法游玩;预编译之后,那些破坏体验的顿挫消失了。

《寂静岭f》的数据更直观。预编译前,一次10分钟的会话里记录到25次编译卡顿(最长246毫秒)、67次着色器顿挫,1%低帧只有3帧。使用该工具后,编译卡顿降到零,剩下的小顿挫在G-Sync显示器上几乎难以察觉。

优点很明确:免费、上手直观、提供编译前后的数据对比,自动读库也省去了翻找游戏目录的麻烦。但它并非万能,工具本身对局限也说得坦白。

  • 目前不少已安装游戏在软件内显示为不支持,点"Why?"会提示"暂不支持",原因是"着色器被压缩或打包:需要引擎读取器"。
  • 绕开的办法是内置录制功能:选中游戏后打开"Record while I play",玩上10分钟左右,工具就能分析渲染管线并预配置着色器。
  • 使用该工具可能触发反作弊封禁,玩《艾尔登法环》时要设为离线启动。
  • 预编译可能耗时。多数游戏几分钟搞定,但《霍格沃茨之遗》的291,688个着色器,即便在AMD Ryzen 7 9800X3D上也要17分钟

而且它救不了《霍格沃茨之遗》。即便在NVIDIA RTX 5090平台上,这款开放世界作品本身就是优化糟糕的移植,10分钟运行里仍出现6次明显的编译顿挫。对于被场景切换卡顿和CPU尖峰困扰的游戏,除非用VRR显示器,否则卡顿依旧可见。

但作为一款免费软件,SCSKiller 在抹平编译卡顿这件事上,已经做得相当出色。