vsync: vertical synchronization, 指与显示器的帧数同步. 简单来说就是启用了vsync的渲染过程,帧数不会超过显示器的帧数, 一个同步会被执行. 同步的地方就是显示器扫描线结束最后一行扫描准备开始第一行扫描的地方.
hsync: horizonal synchronization, 相比于vsync来说, 同步的单位从帧降到行,即是保证操作不是在扫描一行的中间出现,而是同步到下一行.
VBLANK: 显示器扫描线完成最后一行后,需要重返左上角,这个过程叫做: vblank,也叫VBI(vertical blank interval) ,因为扫描线变得blank,以防止看到一个斜线显示在屏幕上.
What are HSYNC and VSYNC?
1. Hsync is “Horizontal Sync”, it is a pulse that synchronizes the start of the horizontal picture scan line in the monitor with the picture source that created it.
Vsync is the equivalent vertical synchronization, it ensures the monitor scan starts at the top of the picture at the right time.
2. Pixels are not controlled by them at all. A Pixel is the smallest picture unit that can be displayed. Imagine the screen is a grid (like a spreadsheet) and each cell can contain one shade or color, the picture is composed of many of them, each small enough that the human eye cannot distinguish them individually so it sees them ‘blend’ into a picture. In the spreadsheet analogy, each cell is one pixel, Hsync would mean start at column zero and Vsync would mean start at row zero.
3. In an 800×600 pixel screen there are 480000 pixels (multiply them) so the time to scan the whole picture would be the period of one pixel (1/f) multiplied by the number of pixels. That only gives the time to wait on the visible part of the picture though, it doesn’t include the time spent in sync pulses. The total is the sum of 800 horizontal sync pulse durations plus the time of all the pixels. Depending on where you start your timing, you might also have to add one vertical sync pulse duration. Without knowing how long those sync pulses last, I can’t tell you the total time.