3. FPS 与刷新率基础:帧率与显示刷新率的区别与联系
在显示性能调优中,FPS(帧率)与刷新率(Hz)是最基础但最容易被混淆的两个概念。它们分别描述了图形生成端与显示端的工作节奏,两者的匹配程度直接决定了用户视觉体验的流畅度与舒适度。本节将从定义、差异、协同关系以及用户体验影响四个维度进行深入剖析。
3.1 核心概念定义
| 术语 | 全称 | 定义 | 单位 | 测量端 |
|---|---|---|---|---|
| FPS | Frames Per Second | 图形处理器(GPU/CPU)每秒能够渲染并提交的完整帧图像数量 | 帧/秒 | 渲染端(GPU/CPU) |
| 刷新率 | Refresh Rate | 显示面板每秒能够刷新(重绘)画面的次数 | Hz | 显示端(面板/驱动板) |
关键区分:FPS 衡量的是“生产速度”,刷新率衡量的是“消费速度”。两者在时间轴上独立运行,但最终在显示扫描输出时交汇。
3.2 FPS 与刷新率的区别
尽管 FPS 与刷新率在数值上可能相同,但它们的物理意义、影响因素以及优化手段完全不同。以下从四个维度进行对比:
- 产生主体不同:FPS 由 GPU 渲染能力、CPU 提交效率、内存带宽以及驱动调度共同决定;刷新率由显示面板的物理特性(如 LCD 响应时间、OLED 像素充电速度)和驱动板时序控制器(TCON)决定。
- 稳定性特征不同:FPS 是动态变化的,受场景复杂度、负载波动影响极大;刷新率通常是固定的(如 60Hz、120Hz),除非启用可变刷新率(VRR)技术。
- 优化目标不同:FPS 优化追求“更高、更稳”;刷新率优化追求“面板极限、低抖动”。
- 对延迟的影响路径不同:FPS 影响输入到渲染的延迟(Pipeline 延迟);刷新率影响渲染到显示的呈现延迟(Display Latency)。
调优启示:在 RK3399 平台上,FPS 瓶颈通常出现在 GPU Mali-T860 的渲染能力或 VPU 的解码能力上;而刷新率瓶颈则与 MIPI DSI 接口带宽、TCON 配置以及面板驱动 IC 的响应速度相关。两者需要独立分析,再联合调优。
3.3 FPS 与刷新率的联系:同步机制
FPS 与刷新率通过显示驱动中的同步机制产生联系。最常见的同步模式有三种:
- 垂直同步(VSync On):强制 FPS 与刷新率对齐。渲染完成一帧后,等待下一个 VBlank 信号才进行 Buffer Swap。优点是无撕裂;缺点是当 FPS 低于刷新率时,会出现重复帧,导致卡顿感。
- 关闭垂直同步(VSync Off):渲染完成后立即提交,不与刷新率同步。优点是延迟最低;缺点是可能产生画面撕裂(Tearing)。
- 自适应同步(Adaptive Sync / VRR):显示面板动态调整刷新率以匹配当前 FPS。优点是既无撕裂也无卡顿;缺点是需要面板和驱动同时支持。
RK3399 平台注意:RK3399 的 DRM/KMS 驱动默认启用 VSync 机制。在调优低帧率场景(如 30FPS 游戏)时,如果刷新率固定为 60Hz,每帧会被重复显示 2 次,导致视觉上的微卡顿。此时可考虑使用 DRM 的
ADAPTIVE_SYNC 属性或调整面板刷新率到 30Hz 来匹配。
3.4 FPS 与刷新率对用户体验的影响
用户体验的流畅度由 FPS 与刷新率的匹配关系决定,而非单一数值。以下通过一个 SVG 流程图展示不同匹配场景下的用户体验状态:
3.5 典型场景分析
| 场景 | FPS | 刷新率 | 同步模式 | 用户体验 | RK3399 调优建议 |
|---|---|---|---|---|---|
| 静态桌面 | 60 | 60Hz | VSync On | 完美流畅 | 保持默认,无需干预 |
| 轻量游戏 | 45 | 60Hz | VSync On | 微卡顿(每3帧重复1次) | 尝试关闭 VSync 或降低刷新率到 30Hz |
| 重度游戏 | 30 | 60Hz | VSync On | 明显卡顿(每帧重复2次) | 强制面板切换 30Hz 模式,或启用 Triple Buffer |
| 视频播放 | 24 | 60Hz | VSync On | 3:2 pulldown 抖动 | 使用 DRM 的 VARIABLE_REFRESH 属性匹配 24Hz |
| 高帧率场景 | 90 | 60Hz | VSync Off | 画面撕裂 | 启用 Mali T860 的 AFBC 压缩降低带宽,或限制 FPS 到 60 |
3.6 延迟视角下的 FPS 与刷新率
从端到端延迟的角度看,FPS 与刷新率分别贡献了不同的延迟分量:
- 渲染延迟(Render Latency):由 FPS 决定。FPS 为 60 时,每帧渲染耗时约 16.67ms;FPS 为 30 时,每帧渲染耗时约 33.33ms。渲染延迟 = 1 / FPS × 1000 (ms)。
- 显示延迟(Display Latency):由刷新率决定。60Hz 刷新率下,从 Buffer Swap 到像素实际点亮,最大等待时间为 16.67ms(取决于 VBlank 相位)。
- 总延迟 = 渲染延迟 + 显示延迟 + 输入延迟。
调优关键:在 RK3399 上,当 FPS 无法提升时(例如 GPU 已满载),降低刷新率反而能减少显示延迟。例如将 60Hz 面板切换到 30Hz,虽然 FPS 仍为 30,但显示延迟从平均 8.33ms 降低到 16.67ms?注意:这里存在一个常见误区——降低刷新率会增加显示延迟(因为每帧的显示周期变长)。正确的做法是:如果 FPS 稳定在 30,使用 30Hz 刷新率可以消除重复帧,减少视觉卡顿,但显示延迟确实会从 60Hz 下的平均 8.33ms 增加到 30Hz 下的平均 16.67ms。这是一个流畅度与延迟的权衡,需要根据具体应用场景选择。
3.7 本章小结
- FPS 与刷新率是两套独立的时钟系统,分别由 GPU 渲染能力和面板物理特性决定。
- 同步机制是连接两者的桥梁,VSync On/Off/Adaptive Sync 各有优劣。
- 用户体验由匹配关系决定:FPS == 刷新率时最佳;FPS > 刷新率导致撕裂;FPS < 刷新率导致重复帧卡顿。
- 延迟分析需区分渲染延迟与显示延迟,调优时需根据应用场景在流畅度与延迟之间做权衡。
- RK3399 平台调优要点:利用 DRM 的
ADAPTIVE_SYNC和VARIABLE_REFRESH属性,结合 Mali T860 的渲染能力,动态匹配最佳刷新率。