不定时更新研究成果
研究主体:xorg-server-1.20.13、xserver-xorg-video-amdgpu-19.1.0
一、基本概念
1. flip与vblank区别
在 Xorg 中,Flip 和 VBlank 是与显示器垂直同步(Vertical Sync)相关的概念,它们有以下区别:
-
VBlank(垂直空白期):
- VBlank 是显示器垂直同步的一个特定时间段,在这个时间段内,显示器的扫描线重新开始扫描屏幕的顶部。
- VBlank 通常用于同步帧缓冲区的更新和显示器的刷新操作。在 VBlank 期间,可以更改帧缓冲区的内容,而不会引起显示器的撕裂(Tearing)现象。
-
Flip(翻转缓冲区):
- Flip 是一种技术,通过在 VBlank 期间切换帧缓冲区来实现无撕裂的显示效果。
- 在传统的双缓冲模式中,绘制的图像会直接显示在前台缓冲区,当显示器进行扫描时,如果此时更新了前台缓冲区,可能会导致撕裂现象。而 Flip 技术通过在 VBlank 期间将后台缓冲区切换到前台,实现了无撕裂的显示效果。
总结来说,VBlank 是显示器垂直同步的时间段,用于同步帧缓冲区的更新和显示器的刷新操作。而 Flip 是一种技术,利用 VBlank 期间切换帧缓冲区,实现无撕裂的显示效果。通过使用 Flip 技术,可以在 VBlank 期间更新帧缓冲区,从而避免显示器撕裂的问题。