打游戏打到一半,屏幕右上角突然多出一排浮动数字:FPS N/A、GPU 97%、CPU 55%、延迟 28ms。第一眼我还以为显卡偷懒了或者驱动崩了,结果游戏跑得丝滑流畅,GPU、CPU、延迟都在正常跳动,唯独FPS给了个冷冰冰的N/A。这个场景我见过太多次了,线上线下都有朋友来问过,今天干脆把这个问题从头到尾拆一遍。
先说结论:FPS N/A基本不是硬件故障,更不是帧率真的为0。它只是监控叠加层“没拿到数据”时的一种显示方式——拿不到,所以没法告诉你帧率是多少,于是报N/A(Not Available,不可用)。而GPU、CPU、延迟这些数据走的链路跟FPS完全不一样,所以它们往往都正常。搞懂这一点,修复逻辑就清晰了。
这篇内容适合两类人:一类是第一次撞见覆盖层、想赶紧把这一排乱码关掉的新手;另一类是玩监控工具多年、突然遇到FPS读数失效的老玩家。不管哪种,下面这套从判断来源到逐个修复的流程,都能直接照着抄。
1. 先搞清楚:你屏幕上那组数据到底是谁在画
右上角那一堆数字不是Windows自己画的,也不是显卡驱动“顺手”显示的。它必然来自某个叠加层(Overlay)工具,只是你可能根本没意识到它已经驻留在后台了。这个工具负责把性能数据实时渲染在你的游戏画面之上,看起来像贴了一张半透明的标签纸。
1.1 常见的覆盖层工具,看你撞上了哪个
行业内最常见的几类,我直接列个表说明它们的来源和调出方式:
| 覆盖层来源 | 常用调出/切换方式 | 数据来源 | 典型问题 |
|---|---|---|---|
| NVIDIA GeForce Experience / NVIDIA App | Alt+R 切换性能覆盖层,Alt+Z 呼出面板 | NVIDIA驱动内部计数 | 驱动更新后自动开启,或本身读不到FPS |
| AMD Adrenalin 软件 | Ctrl+Shift+O 开启性能指标覆盖 | AMD驱动计数器 | FPS与渲染延迟在DX12下偶发缺失 |
| MSI Afterburner + RTSS | 由RTSS的OSF小键盘开关,或Afterburner的监控页 | DLL注入游戏进程+系统计数器 | 权限不足、反作弊拦截、HAGS冲突 |
| Xbox Game Bar | Win+G 呼出,性能小组件可选FPS/GPU/CPU/RAM | Windows系统计数器 | 未启用游戏模式或后台录制冲突 |
| Steam 客户端 | Shift+Tab 打开好友列表,右下角有FPS显示 | Steam自带渲染统计 | 只能看FPS,看不到延迟和GPU占用 |
| 游戏加加、WeGame、Fraps | 各自热键或悬浮窗 | 混合来源 | 多工具同时开会互相干扰 |
看到右上角出现FPS、GPU、CPU、延迟这一整套数据,且排列整整齐齐,优先级最高的是NVIDIA性能覆盖层,其次是AMD Adrenalin,再就是MSI Afterburner + RTSS。因为只有这些工具才会默认把所有指标集中显示在同一排。
1.2 为什么这些数据不是来自同一个接口
很多人的误区是“监控工具就是去系统要一个总体性能数据”。实际上每个指标的数据通道都是独立的:
- GPU使用率:由显卡驱动主动上报,硬件计数器通常始终开启,所以只要驱动没崩,它总有值。
- CPU使用率:操作系统对各核心运行队列的统计,任何用户态程序都能通过系统API直接读到。
- 延迟:可能是网络延迟(游戏网络模块内部计时),也可能是渲染延迟(通过NVIDIA Reflex或其他GPU API拿到的输入到画面延迟)。
- FPS:需要监控工具在游戏进程里注入代码,挂钩渲染管线的“提交画面”动作才能计算。
关键在于,FPS这一项是唯一需要通过“进程注入+挂钩渲染函数”来获取的,其他数据多是系统常驻计数器或驱动自带面板。所以当注入被拦截、挂钩失效时,其他指标安然无恙,唯独FPS变成N/A。这个分叉逻辑是整个问题里最重要的一环。
2. FPS N/A的本质:不是没帧率,而是检测不到帧率
既然FPS和其他数据的来源不同,那就得先理解监控工具具体怎么数帧。只有搞清楚了它的工作机制,你在排查时才能少走弯路。
2.1 一帧一帧数出来的FPS,挂钩断了就数不了
游戏的渲染循环本质上是一个死循环:逻辑更新、执行渲染命令、调用Present函数把画面提交给显示器。监控工具做的是在游戏进程启动时,把自己写好的那段DLL塞进游戏进程空间,然后Hook住Present这个提交函数。每一次游戏调用Present,工具代码就会被触发一次,它记录一当前时间戳,和上一次记录的时间戳相减,得到一个帧间隔(Frame Time)。
然后反向换算:
FPS = 1 / 帧间隔举例:帧间隔是16.7ms,FPS就是60;帧间隔是8.3ms,FPS就接近120。
一旦注入或挂钩失败,工具收不到任何Present调用,它就完全没有可计算的时间戳。此时它宁可显示N/A,也不显示0,因为显示0会让人误以为画面完全卡死,而实际游戏可能跑得好好的。N/A的意义是“我这边断链了,数据拿不到,不是画面没跑”。
2.2 延迟和FPS还是两码事
很多人会把“延迟”理解成“卡顿”,进而以为FPS N/A和延迟有关。其实屏幕上显示的延迟有两种常见含义,都跟FPS不是一回事:
- 网络延迟:多数来自游戏内网络HUD或网络驱动缓冲,单位通常是毫秒(ms)。这反映的是数据包从你的电脑到服务器再回来的往返时间,跟渲染多少帧没有任何直接关系。
- 渲染延迟:NVIDIA Reflex、AMD Anti-Lag这类技术提供的延迟数据,代表从鼠标输入到画面显示经过的总时间。这个值和FPS有一定相关性,但它是独立传感器提供的时间戳,不依赖Present挂钩。
所以,你看到延迟还在跳,反而可以放心:渲染管线本身没坏,只是FPS计数链路断了。
2.3 N/A最常出现的四种环境
根据我接触过的真实案例,FPS N/A的高发场景就四种:
- 监控工具以普通权限运行,游戏以管理员权限启动。系统不允许低权限进程注入高权限进程,挂钩直接被拒。
- 游戏使用了独占全屏模式,或者用Vulkan后处理器,老版本RTSS无法正确挂钩。
- 反作弊系统拦截。无畏契约、CS2国服、永劫无间这类带反作弊的游戏,会把模块签名校验和DLL注入防护做得非常严格,第三方监控的注入动作可能被当成作弊行为挡掉。
- Windows的新版本渲染栈插了一脚,比如“硬件加速GPU计划”(HAGS)开启后,游戏进程的提交链路发生变化,老工具按原路径找不到Present函数。
只要把场景对号入座,后面每一步排查都有的放矢。
3. 从易到难的排查路线:按这五个步骤走
我一直主张,遇到这种问题先别上重手段,更不要一上来就重装系统。按下面的顺序一步步来,每一级都有明确的验证点,走完基本能解决九成问题。
排查过程中的每一步,都要在进入下一级之前重新打开游戏看一眼FPS是否恢复。如果没有恢复,再继续往下。不要在同一个状态上反复试多次,浪费时间。
3.1 第一步:先判断这个覆盖层是“谁”跑出来的
“突然显示”这个描述很关键。正常情况下,性能覆盖层不会自己冒出来,它多半是某次快捷键误触,或者软件更新后自动开启了。
- 如果你是NVIDIA用户,先按一下Alt+R。如果数字消失了,说明刚才就是NVIDIA性能覆盖层。
- 如果你是AMD用户,按Ctrl+Shift+O。同样,消失了就是AMD的覆盖层。
- 如果你装过MSI Afterburner,检查它是否开机自启,并在设置里看到“启动最小化”选项。
- 如果按完所有热键都没反应,再考虑游戏内置帧率显示。CS2、Dota2、Valorant都有自己的
FPS或net_graph命令,这类显示不会平白无故开启,通常是你在游戏设置里不小心动过。
如果这一排数据是你主动想开的,不想让它在屏幕上挡视野,那直接关掉热键就完了,根本不存在“修”的问题。如果你是想用它监控游戏状态,但出现N/A,才继续往下走。
3.2 第二步:用窗口化/无边框模式做交叉验证
这一步能快速区分问题出在挂钩还是驱动。具体做法是:在游戏图像设置里,把显示模式从“全屏”改成“无边框窗口化”,然后重新进入游戏看FPS有没有数值。
为什么有效?独占全屏模式下,游戏进程完全掌控显示输出,部分监控工具对它的注入成本更高;而无边框窗口模式走的是Windows桌面合成器(DWM)的渲染链,工具读取到的提交顺序更接近普通日常渲染,注入成功率会提高。
如果无边框窗口下FPS恢复了,锁定问题方向是老工具对新版独占全屏的兼容性不够。这种情况下,要么更新监控工具到最新版本,要么以后就用无边框窗口玩游戏,反正现代系统无边框模式的性能损失已经很小。
3.3 第三步:管理员权限与进程隔离
如果窗口模式没用,第二个高概率原因是权限。
操作很简单:找到监控工具的主程序(比如RTSS.exe、MSIAfterburner.exe、GeforceExperience.exe),右键→属性→兼容性→勾选“以管理员身份运行”,然后彻底退出游戏和工具,重新以管理员权限启动工具,再启动游戏。
对MSI Afterburner和RTSS这对组合尤其重要,因为它们依靠DLL注入,普通权限下很难注入到UAC提权后的游戏进程。这个我在多台机器上验证过,属于第一梯队的修复手段。
需要注意的是:如果你开的游戏本身不是管理员权限,那工具管理员权限过不过都无所谓;但如果游戏有类似“以管理员身份运行”的兼容性设置,或者某些反作弊强制提权,工具管理员权限就必须同步。
3.4 第四步:关闭“硬件加速GPU计划(HAGS)”
这一步针对Windows 10 2004以后系统版本、以及Windows 11。HAGS开启后,Windows会接管部分GPU调度,让应用和游戏以更底层方式提交渲染命令。对普通用户,HAGS能略微降低延迟、提升部分游戏的流畅度,但对老版本RTSS和部分内置性能叠加层来说,它改变挂钩点,导致FPS读数丢失。
关闭路径:
设置 → 系统 → 屏幕 → 显示卡(图形) → 默认设置 → 硬件加速GPU计划把开关关掉,重启电脑,再进游戏看FPS。
这条我印象很深:某次Windows 11 23H2推送后,我一哥们儿的RTSS面板在游戏里FPS直接变成N/A,GPU和CPU都正常。他折腾了两天,最后关了HAGS立刻恢复。如果你实在不想关HAGS,也可以先把监控工具升到最新版,因为新版本会适配新的调度方式,部分版本已经兼容。
3.5 第五步:DDU彻底卸载显卡驱动后重装
走到这一步,基本排除了设置和权限问题,那就可能是驱动状态损坏。显卡驱动更新残留、文件冲突都会让驱动自带的性能计数接口“挂了”,但游戏还能正常跑,因为游戏用的是渲染API,不依赖性能计数接口。
这里推荐用DDU(Display Driver Uninstaller)在安全模式下彻底清理旧驱动,再装当前最新驱动。安装前先断网,装完再联网,避免系统自动更新覆盖版本。
具体流程我简化成五步:
- 下载DDU解压到本地,同时把新驱动安装包也提前下载好。
- 重启进安全模式(设置→系统→恢复→高级启动→立即重启,或开机按Shift+重启)。
- 打开DDU,选择“清除并重启”,显卡类型选NVIDIA或AMD。
- 系统重启进入正常模式后,立刻安装提前下载好的驱动。
- 安装完成后重启,再进游戏验证。
这一步不要嫌麻烦。我自己遇到过几次驱动更新后覆盖层数据混乱,DDU清一遍再装,所有指标全部恢复。比直接叠加安装靠谱太多。
4. 分工具修复实录:NVIDIA、RTSS、Game Bar各自踩过的坑
排查路线走完,如果问题还没解决,那就要针对具体工具去处理了。这里我把几个高频工具的修复细节单独拆开讲,内容基于我在真实玩家电脑上处理过的案例。
4.1 NVIDIA性能覆盖层:最有迷惑性的“官方面板”
NVIDIA GeForce Experience和新的NVIDIA App都集成了性能监控,Alt+R一键开关。这类覆盖层的FPS数据来自驱动本身,理论上最稳,但实际也会出现N/A,常见原因有两个:
一是驱动层面的性能计数器失效。这种状况通常伴随“NVIDIA App的GPU性能页面也显示不全”的问题。解决办法是用上面说的DDU重装驱动,不要只点“更新驱动”。
二是游戏没有进入驱动生成的“性能令牌列表”。NVIDIA的性能覆盖层在部分全屏独占游戏或使用特定渲染器的游戏上会识别不到,此时在覆盖层设置里切换一次“显示高级覆盖层”,或者把数据刷新频率调高,往往能触发重新挂钩。
老显卡用户还要注意:NVIDIA在部分旧架构显卡上对新的性能覆盖层更新不及时,甚至禁用某些功能。开普勒、麦克斯韦架构的老卡如果遇到N/A,不用死磕性能覆盖层,直接换第三方工具更省心。
4.2 MSI Afterburner + RTSS:权限和反作弊是重灾区
这对组合是DIY玩家最常用的,没有之一。它出FPS N/A的坑位也最多。
第一类:只装了MSI Afterburner,没装RTSS。Afterburner本身负责读取温度、频率、占用率,但FPS计数实际上是RTSS的活儿。很多人按网上教程装了Afterburner,但没有下载RTSS组件,FPS自然会显示N/A或不出现在监控里。确认RTSS文件夹下有一个RTSS.exe,并且开机自启,是第一步。
第二类:权限问题。前面提到过,RTSS需要管理员权限,同时推荐把RTSS.exe加入Windows Defender排除项,避免杀毒软件干扰注入。
第三类:反作弊拦截。这里单独说明,TP反作弊、Vanguard、Easy Anti-Cheat都出现过拦截RTSS注入、导致FPS不显示的案例。如果你玩的是反作弊严格的游戏,不用硬扛,直接在RTSS的“配置文件”里单独把游戏进程排除监控,同时让RTSS使用“反作弊兼容模式”。RTSS较新版本在设置项里有一个Compatibility with anticheat相关选项,勾上可以降低检测面。
第四类:RTSS配置文件的兼容性级别太严。在RTSS主界面选中游戏进程,右侧“兼容性设置”里有一个“允许与RivaTuner互动”的钩子。默认一般是开启,但某些游戏配置被改过会导致独立挂钩失效。建议把Framerate limit设为0(不锁帧),并确认“Show On-Screen Display”里的OSD support勾选状态。
4.3 Xbox Game Bar:想要FPS,还得先进入“游戏”
微软自家的小组件,胜在系统自带,但时常有人反映FPS不显示。它的工作原理和第三方工具不太一样:Xbox Game Bar需要识别到当前窗口是“游戏”,才会激活性能计数器,包括FPS。
很多玩家遇到的问题,恰恰是它没把某个程序当成游戏。打开Win+G,界面上如果出现了“Xbox 社交栏”而不是性能小组件,说明它没识别到游戏。解决办法有两种:
- 在Game Bar里点击标题栏的设置(齿轮图标),勾选“记住这是一个游戏”。
- 确认系统的“游戏模式”是开启状态。路径:设置→游戏→游戏模式→开启。
Game Bar还有一个副作用它自己不会告诉你:后台录屏功能开得太久,或者“在后台录制最近30秒”占用GPU编码器,某些显卡驱动环境下也会让覆盖层数据错乱。可以在Game Bar设置里把视频捕获模式下“在后台录制”一栏关闭,减少干扰。
如果Game Bar的整个性能面板都是空白,试试重置:
Get-AppxPackage Microsoft.XboxGamingOverlay | Reset-AppxPackage在PowerShell里以管理员身份执行,重启后再呼出Win+G。
4.4 AMD和游戏内置监控
AMD Adrenalin的性能指标覆盖层在DX11下很稳,到DX12/Vulkan下偶发FPS不显示。Adrenalin本身的逻辑和NVIDIA差不多,先按快捷键关掉再重新打开,刷新一次就可以。如果无效,在“性能→指标→覆盖层”里把“显示FPS”开关重置,或者升级Adrenalin版本。
纯绕过方案是用Steam自带的FPS计数:Steam客户端→设置→游戏中→“帧率显示”选择位置。缺点是只能看FPS,没有GPU/CPU/延迟。
游戏内置监控是另一个思路。CS2的net_graph 1会显示帧率、丢包、延迟;Valorant的Ctrl+Shift+Alt+F也能看到基础帧数。如果第三方工具和反作弊冲突,就用这些原生命令,稳定又安全。
5. 验证数据恢复正常,以及防复发的几个习惯
修好之后别急着高兴,先做一轮有效验证,同时把日常使用习惯调整一下,不然过两周又冒出来,心态容易爆炸。
5.1 一套完整验证流程,比连续开三个覆盖层靠谱
我强烈建议一次只开一套监控工具。不要NVIDIA叠加层、RTSS、Xbox Game Bar一起开,因为多个工具同时试图挂钩同一个渲染接口时,反而可能互相抢占,最后谁的数据都不正常。
推荐的验证流程是:
- 关掉所有监控工具,只用你要长期用的那一个。
- 以管理员权限启动监控工具。
- 打开游戏,进入一场实际对战或高负载场景,把覆盖层呼出来。
- 观察FPS是否连续跳动,GPU/CPU的使用率是否随场景变化,延迟是否在一个合理范围内。
- 连续游玩20-30分钟,确认FPS不会中途变回N/A。
- 如果中途又变N/A,退游戏把所有工具进程结束,重新按管理员权限启动再来一轮。
这样跑下来基本能确定问题已解决。多开工具验证反而制造新问题,这一点一定要记住。
5.2 养成这几个习惯,大概率不会再犯
有几个习惯是我在反复踩坑后总结出来的,成本低、效果明显:
| 习惯 | 说明 |
|---|---|
| 监控工具固定一套 | 对我个人来说MSI Afterburner+RTSS用习惯了,就用它;NVIDIA用户直接用Alt+R覆盖层也行。不要今天换这个明天试那个 |
| 驱动更新前看发布说明 | NVIDIA/AMD每版驱动都会列出已知问题,包含“性能计数器可能无法在XX游戏上显示”这类条目。看完再决定更新 |
| 反作弊游戏优先用内置监控 | 无畏契约、CS2、永劫无间这类游戏里,第三方叠加层本身就容易和反作弊冲突,没必要去赌 |
| 保持显卡驱动和监控工具同频更新 | 老版本RTSS对新显卡驱动的适配确实有滞后,一般新驱动发布后一两周RTSS会有对应更新,及时升级 |
| 系统大版本更新后检查覆盖层 | Windows版本大更新可能改变渲染层行为,如果更新后FPS读数异常,第一反应是看工具和驱动是否有新版本 |
5.3 一个很实用的小技巧
如果你某次进了游戏才发现FPS又变成N/A了,又不想马上去研究驱动,可以先把监控工具的“叠加层显示”热键关掉再重新打开——大多数工具会重新尝试挂钩一遍当前游戏进程。在RTSS里,这个动作相当于按一下“小键盘星号”再按回来;在NVIDIA覆盖层里就是Alt+R关掉再Alt+R打开。这个方法不是百分百管用,但胜在一秒见效,适合临时应急。
从根上讲,FPS N/A并不可怕,它就是监控工具和游戏渲染管线之间的一次“握手”失败。搞明白数据通道的分叉原理,再按权限、兼容性、驱动的顺序排一遍,绝大多数情况都能在几分钟内解决。真正需要重装系统的场景,我这么些年一次都没遇见过。