Tearing problem at bigger overlay sizes

Christiaan van Dijk dvbmail at xs4all.nl
Tue Jan 20 10:49:27 PST 2009



Roland Scheidegger wrote:
>> I'm really starting to run out of idea's here, any input would be very
>> appreciated. The system is intended as a HTPC connected to a full-HD LCD
>> but is pretty useless with the current performance. Fglrx drivers are
>> incredible unstable with full-HD and 64-bit platform and also do not
>> seem to resolve the tearing issue.
>>
>>     
>
> Not sure but I think using the fe/re_crtc wait isn't really that robust
> as you risk missing entire frames - I'd think only using the vline wait
> would be more robust.
> I think best easy solution would just be to render the video as a couple
>  (like 4 or so) of quads (that is, full width but 1/4th the height (
> thought someone suggested that already somewhere?), with the expectation
> that the first one is finished rendering after vblank. This ways you'd
> only need 1 wait per frame and could just draw those couple of quads
> afterwards.
>
> Roland
>
>
>   
Thanks for the very helpful hint!

Just adapted the code to wait for WAIT_CRTC_VLINE, display is split in 
two halves for rendering with two quads. The top part uses lines 
540..840 as start/stop, no inversion. Bottom part uses lines 0..300, no 
inversion. This guarantees 240 lines for rendering of each screen half.

This gives full-screen playback with NO-TEARING!!!!!

I will clean up and improve the code (right now very raw) with this 
solution, will post the diffs when done.

Thanks,
Christiaan.



More information about the xorg-driver-ati mailing list