显卡和显示器的同步技术

学习目标

  • 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追求高帧率,容忍屏幕撕裂无限制帧率
可能出现屏幕撕裂

参考资料

  • 【硬核科普】超过240Hz的刷新率有用吗?你需要多高的刷新率:https://www.bilibili.com/video/BV19MfeYrEDn?vd_source=8bea9daddff2f8145a07b82f98babecc
  • DeepSeek相关解答
  • Nvidia如何开启G-Sync:https://www.nvidia.com/content/Control-Panel-Help/vLatest/zh-cn/mergedProjects/nvdspCHS/To_use_variable_refresh_rates.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值