x1250 horizontal tearing problems
alexdeucher at gmail.com
Wed Apr 30 11:39:05 PDT 2008
On Wed, Apr 30, 2008 at 3:06 AM, Michel Dänzer
<michel at tungstengraphics.com> wrote:
> On Tue, 2008-04-29 at 16:52 -0400, Alex Deucher wrote:
> > On Tue, Apr 29, 2008 at 4:34 PM, Alex Rades <alerades at gmail.com> wrote:
> > > Hi,
> > > when playing videos (either in xv or plain x11) on my x1250, I always see
> > > horizontal (not diagonal, which are now fixed) tearing problems. They seem
> > > related to vertical sync problems. Do you have suggestions?
> > We need sync to vblank support for textured video to properly deal
> > with that. this untested hack may help, but it's not optimal:
> > http://www.botchco.com/alex/xorg/texvid_wait_vsync.diff
> Good to see this getting tackled. Here's what I think is missing:
> * Set up the CRTC*_GUI_TRIG_VLINE register such that it waits for
> scanout to be outside of the destination vertical range.
yeah, makes sense.
> * Only wait if the window isn't redirected (backing pixmap is the
> screen pixmap)
yeah, as you said, any rendering to the front buffer should wait for
vblank. I may play around with it a bit if I have time, but
unfortunately, I seem to be unable to notice tearing generally. Do
you have any good tips or content that would make it easier to notice?
The other issue is that the current IB scheme doesn't really lend
itself to this. Ideally we'd queue up everything and then pre-pend a
wait_until vblank when we submit the IB. Additionally, we have the
issue of multiple crtcs for regular rendering as well. In that case,
we really need shatter.
> * Select the CRTC to to synchronize to according to visibility of
> the window, or if it's the same on both CRTCs, according to user
> preference (maybe reuse the XV_CRTC attribute for this?)
yeah, the only problem would be when the video straddles multiple
crtcs. As you said in this case, we just use similar logic to the
overlay sourcing logic.
More information about the xorg-driver-ati