Intel i915GM (xf86-video-intel modesetting) Tearing during playback with XV

Lukas Hejtmanek xhejtman at
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->DWINPOS = (dstBox->y1 << 16) | dstBox->x1;
overlay->DWINSZ = ((dstBox->y2 - dstBox->y1) << 16) |
         (dstBox->x2 - dstBox->x1);
/* buffer locations */
if (IS_I965G(pI830))
   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)

Lukáš Hejtmánek

More information about the xorg mailing list