Tearing problem at bigger overlay sizes

Alex Deucher alexdeucher at gmail.com
Thu Jan 8 14:57:48 PST 2009


On Thu, Jan 8, 2009 at 3:08 PM, Christiaan van Dijk <dvbmail at xs4all.nl> wrote:
> Hello,
>
> I have an Albatron KI-690 mainboard with an RS690 integrated graphics
> adapter running OpenSuSE 11.1. I have been trying different options for
> the display driver. Most solutions show severe tearing during video
> playback (diagonal line from bottom left to top right). Right now I'm
> using the radeon driver with the following options:
>
> Option "AccelMethod" "EXA"
> Option "EXAVSync" "on"
>
> This setup seemed to work perfectly but some problems popped up. I'm
> using a full-HD 1920x1080p/50Hz TV for output. When playing SD 4:3
> (scaled to 1440x1080) with MythTV the picture is perfect, when playing
> SD 16:9 (scaled to 1920x1080) the tearing is back. The same can be
> reproduced with Mplayer, when increasing the image size there's a point
> at which the tearing is back At smaller sizes there's is also a black
> bar on the right side of the image when moving the image to the right
> side of the screen. The black bar varies with the window size (bigger
> image, wider bar), the rest of the picture is correct.
>
> I suspect the waiting for the vsync is skipped when the image size is
> increased, I've been looking in the EXA code but I'm not sure where to
> look. Any suggestions or places to look in the code would be very welcome.

The engine is still stalling for the vline.  The problem is you are
hitting the hw guardband limits on r3xx/r4xx.  The diagonal tearing is
due to the fact that the hw renders a quad as two triangles.  To avoid
this we render to a single clipped triangle; this means the triangle
is twice the width and height of the video.  Due to the limits
mentioned above, the max triangle dimension is 2880.  Since we use a
double sized clipped triangle, you can only use it for rendered videos
up to 1440.  Beyond that the driver reverts back to using a quad.  You
might be able to render the video using point sprites which would
avoid the 1440 limit.

Alex


More information about the xorg-driver-ati mailing list