问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

显卡和显示器的同步技术

创作时间:
作者:
@小白创作中心

显卡和显示器的同步技术

引用
CSDN
1.
https://blog.csdn.net/qq_15792541/article/details/145652284

显卡和显示器的同步技术是提升游戏和视频体验的关键。本文将详细介绍V-Sync(垂直同步)、VRR(可变刷新率)、G-Sync(Nvidia)和FreeSync(AMD)等技术的概念、原理和应用场景,帮助读者更好地理解这些技术的工作方式及其优缺点。

学习目标

  • V-Sync(垂直同步)
  • VRR(可变刷新率)
  • G-Sync(Nvidia)
  • FreeSync(AMD)
  • 无同步:关闭同步技术,显卡和显示器各自发挥;
  • 应用场景对比分析

学习实践

  • 控制开启
  • V-Sync:OpenGL可以通过
    glfwSwapInterval(1)
    控制开启 V-Sync(1 表示开启,0 表示关闭)
  • VRR:
  • OpenGL如何控制显卡帧率(无上限、有上限)

基础概念

  • 显卡帧率:显卡每秒生成的画面帧数,一般以FPS(Frame Per Second)为单位,例如60FPS相当于1s内能绘制60帧的画面,帧率越高,显卡每秒生成的画面数量就越多,整体画面看起来就越流畅;
  • 刷新率:显示器每秒更新屏幕内容的次数,一般以Hz(赫兹)为单位,例如60Hz相当于显示器每秒刷新屏幕60次

V-Sync(Vertical Sync, 垂直同步)

  • 背景:显卡帧率和显示器刷新率不一致,显卡在后缓冲区绘制完成后进行前后缓冲切换,而显示器刚此时还在读取前缓冲区数据进行屏幕绘制,最终导致画面撕裂问题
  • 思路:显卡等显示器刷新
  • 方案:显示器在每帧刷新完成后再通知显卡进行前后缓冲切换,确保屏幕每次刷新时都只会读取同一帧的数据
  • 适用场景:显卡帧率 > 显示器刷新率
  • 问题:延迟和卡顿
  • 输入延迟:简单来所就是未开启V-Sync,对于高帧率的显卡在低刷新率的显示器上,即使画面撕裂,但显示器部分画面数据还是能以显卡最近一次绘制结果为准,但开启V-Sync后只能受限于显示器刷新率;
  • 帧率下降:如果显卡的帧率 低于 屏幕刷新率,那V-Sync会导致帧率下降的问题,例如显卡帧率只能达到50FPS,在刷新率为60Hz的显示器中,最终被V-Sync将帧率锁定到30FPS(显示器一帧刷新完成后显卡还未完成渲染,因此显示器又开始下一帧的刷新,即使显卡完成渲染后也只能等显示器第二帧刷新完成)

VRR(Variable Refresh Rate, 可变刷新率)

  • 背景:解决V-Sync中帧率低于刷新率时的延迟和卡顿问题
  • 思路:显示器等显卡刷新
  • 方案:显示器每次刷新完成后进入等待状态,等显卡绘制完成前后缓冲区交换后,显示器再开始执行刷新
  • 适用场景:显卡帧率 < 显示器刷新率,一般高刷新率的显示器能让VRR的生效区间更广;

应用场景对比分析

组合方式 适用场景 优缺点
仅开启 V-Sync 显示器不支持 VRR,且显卡帧率稳定 避免屏幕撕裂可能引入输入延迟
仅开启 VRR 显示器和显卡支持 VRR 动态避免屏幕撕裂无输入延迟最佳体验
同时开启 V-Sync + VRR 不建议 VRR 功能受限可能增加输入延迟
关闭 V-Sync,关闭 VRR 追求高帧率,容忍屏幕撕裂 无限制帧率可能出现屏幕撕裂

参考资料

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号