On Wed, 2009-01-14 at 16:32 -0800, Keith Packard wrote:
> 
> The textured adapter causes tearing because it doesn't synchronize the
> screen update to the vblank. Synchronizing this operation involves
> either:
>      A. queuing a command to stop the graphics engine until the vblank
>         interval and then queuing the rendering commands right after
>         that. 
>      B. waiting for the vblank interval to occur and then quickly
>         queueing suitable rendering commands to the graphics engine

     C. What the radeon driver does: queuing a command to stop the
        graphics engine until scanout is outside of the vertical CRTC
        area to be rendered to and then queuing the rendering commands
        right after that.

> Of the two, A. is trivial where it works (it does work on the X4500),
> but it means that all rendering on the screen stops once the command to
> display the video is queued to the card. That seems fairly harsh.

With C., the percentage of time the pipeline stalls more or less
corresponds to the percentage of the vertical CRTC area covered by the
video, which I suspect is generally more acceptable than video tearing.


> And that doesn't consider multi-head environments where you have to know
> which monitor you want to sync with so that you can wait for the right
> time.

That's well covered by CRTC coverage analysis or something like the
XV_CRTC attribute in ambiguous cases.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer
_______________________________________________
xorg mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/xorg

Reply via email to