Intel i915GM (xf86-video-intel modesetting) Tearing during playback with XV
xhejtman at fi.muni.cz
Wed Feb 21 15:48:36 PST 2007
On Wed, Feb 21, 2007 at 02:50:28PM -0800, Keith Packard wrote:
> > I am afraid that you have to wait until Keith or Eric fixes this issue as
> > Intel did not release the documentation. I do not know whether video overlay
> > for G965 is not supported due to HW limitation of G965 or by temporarily
> > non-working overlay code.
> The G965 doesn't have an overlay at all. If it did, we'd be using it.
OK. I've supposed that G965 does not have overlay. However, this code from
i830_video.c was a little bit confusing for me:
overlay->OCMD = OVERLAY_ENABLE;
overlay->DWINPOS = (dstBox->y1 << 16) | dstBox->x1;
overlay->DWINSZ = ((dstBox->y2 - dstBox->y1) << 16) |
(dstBox->x2 - dstBox->x1);
/* buffer locations */
overlay->OBUF_0Y = 0;
overlay->OBUF_0U = 0;
overlay->OBUF_0V = 0;
overlay->OSTART_0Y = pPriv->YBuf0offset;
> We need a way to synchronize the update with vrefresh; right now the
> only mechanism available in the 2D driver is to spin waiting for the
> vrefresh bit to turn on.
It is the case of the video overlay that uses busyloop to wait for retrace.
However, I think it could be possible to wait for retrace via DRI (and if DRI
is not available then fallback to busyloop, possible with usleeps). I believe
that busyloop with sleeps could be better approach than the current one.
> We switched the default so that video would work with Composite. It
> worked the last time I tried it; perhaps something has broken in the
> meantime? I know the memory allocation code is a bit of a mess at
> present; it's possible the driver didn't manage to allocate space for
> the overlay.
For me, none of available XV implementations works correctly. video overlay
displays only color key and textured video displays in many cases only this:
instead of this:
Thus I have to use some older driver (the one that uses DrawablePtr instead of
PixmapPtr in I915DisplayVideoTextured)
More information about the xorg