> You prevent tearing if you use more than one buffer, CCDC captures into one > buffer while another one is displayed. The VPBE hardware uses a ping-pong buffer scheme that bounces off two different memory addresses every VSYNC - the FB driver just manages the population of the correct memory addresses into these ping pong registers. Suppose the CCDC starts writing to the in-active buffer while the VPBE is displaying the first - there is no guarantee that the CCDC will be done composing the in-active buffer before the VPBE switches to this buffer. Note that it is not software that controls this switch, the VPBE hardware will automatically switch on a VSYNC. Hence, even in a double buffered situation, you cannot escape this hazard. However, if you can guarantee that the CCDC frame time is less than the VPBE frame time, then you most probably can escape with this. To truly make this an effective, non-tearing solution, you'll need triple buffering. The latency does go up, but using DMA to transfer from previewer memory output buffers to the VPBE bufs is the ideal solution (~3ms for a D1 frame)
Jerry Johns Design Engineer Nuvation Research Corp - Canada Tel: (519) 746-2304 ext. 221 www.nuvation.com <http://www.nuvation.com>
_______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
