VBlank 重置扫描点(扫描点从右下角移动到左上角)的过程

帧传递 Buffer Swap

  • 前缓存 Front Buffer
  • 后缓存 Back Buffer

    画面撕裂

  • 帧数与显示器的刷新率不匹配,就会出现画面撕裂

    垂直同步

    显卡等待显示器

  • 强制帧传递发生在 VBlank 阶段

  • 帧率被锁定在显示器最大刷新率下
  • 当显卡性能不足时,会出现掉帧现象
  • 产生画面延迟和鼠标相应延迟

    • 缓解延迟的方法:三重缓冲 Triple Buffer
      快速垂直同步 / 无阻塞垂直同步
  • 在三重缓冲的基础上,显卡可以不断覆写中缓存和后缓存,不用等着显示器

  • 弊端

    • 帧生成时间不均匀导致的卡顿感

      自适应显示器刷新率(VRR) G-sync / Freesync

      显示器等待显卡
      帧率接近刷新率
  • 理想状态的 VRR

    帧数高于刷新率
  • 不能解决,仍有画面撕裂

    帧数低于刷新率
  • 帧数拉慢

  • 引入 低帧补偿(Low Frame Compensation, LFC)
    • 让刷新率变成帧率的整数倍

      画面的卡顿、撕裂、延迟不能完美兼顾