[MPlayer-dev-eng] [PATCH] reduce flashing on resize with VDPAU

Stephen Warren swarren at nvidia.com
Mon Mar 23 16:45:28 CET 2009


Dan Oscarsson wrote:
> 
> On 2009-03-18 at 10:34 +0100 Reimar Döffinger wrote:
> 
> > You can try attached patch. There are some issues though: I only
> > tested with the blit engine, which behaves a bit weirdly, it
> > should be possible to disable it, and it should be possible to
> > adjust the number of output surfaces used.
> > It might also be nicer to allow skipping in the draw_image part for
> > cases where the GPU usage is the issue, but that has higher jitter.
> 
> I have now built on your patch by adding knowledge on the vsync
> interval and vsync time so that it can better align display and
> dropping to get best showing of frames.

The best way to handle this would be to use the VDPAU presentation queue's
timestamp mechanism; choose a timestamp for each frame to be presented,
give this to the presentation queue, then use the "displayed at" time
returned by the presentation queue status commands to determine whether
presentation is drifting to become late or not.

> I can also identify when the blitting engine is used so that it can be
> handled differently from the other one.

That's odd; the two mechanisms are designed to have the same semantics
and be indistinguishable. If that's not the case, it's a bug we'd like
to fix. Why do you feel the need to distinguish the two mechanisms, and
how are you doing so?

> Though VDPAU is missing a good way to easily get the vsync interval.
> 
> Now I can watch a move on a screen where screen refresh rate is nearly
> the same as the movie fps.
> 
> I could add options so that vsync alignment can be turned
> on/off/modified and an option to set number of output surfaces to use.
> 
> As my patches for vsync handling has not been in the way you prefer, I
> wander if I should continue or if somebody else will fix it?
> 
> If you want me to continue, what options do you want to have?

-- 
nvpublic



More information about the MPlayer-dev-eng mailing list