[mythtv] Re: Another data point for the new XvMC stuff

Daniel Kristjansson danielk at cat.nyu.edu
Thu May 5 18:31:09 UTC 2005


On Tue, 2005-05-03 at 20:39 -0700, Mark Frey wrote:

> Okay, I pulled down the latest CVS rebuilt with OpenGL vsync off, and
> here's a summary of all the cases:

> OpenGL vsync compile flag on and:
> 
> 1. No sync to vblank settings on through the nvidia settings tool:
> smooth playback except some small stuttering when coming out of skip
> forward/back and when the OSD is up. Small to moderate tearing limited
> to the top quarter of the screen.

> 2. OpenGL sync to vblank turned on through the nvidia-settings tool:
> much as above, with slightly more stutter.

I think we should get one of these cases working. The OSD stuttering has
to do with limited buffers in XvMC, the code will allocate more buffers
once the hardware/drivers improve.

I'm not sure why you are getting this tearing, we shouldn't return from
WaitForFrame() until just after a retrace, and then we plenty of time to
display the frame. Unless glXWaitVideoSyncSGI just doesn't work when
sync to vblank is disabled, or you have multiple monitors and we are
syncing to the wrong one (quite possible with Xinerama).


> 3. OpenGL sync to vblank, Video Texture sync to vblank, and Video
> Blitter sync to vblank on through the nvidia settings tool: the worst
> stuttering, especially with the OSD up and coming out of skip
> forward/back. Would seem to get into a mode where it would constantly
> stutter, skipping back a couple of times would fix it such that the
> stuttering was only occasional. No visible tearing of the image.

My guess is that internally XvMC uses Textures and blits multiple times
per frame, so enabling this just adds too many wait states to the
pipeline. I know that when the hardware first became reasonably
programmable with the FX series, enabling sync-to-vblank meant
that each pass was synced to vblank, and not just the display
passes. XvMC is probably implemented as just another a fragment
program within the drivers, and so is handycapped the same way
by sync-to-vblank.

-- Daniel



More information about the mythtv-dev mailing list