> 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

Reply via email to