[RFC v2] Wayland presentation extension (video protocol)
Axel Davy
axel.davy at ens.fr
Sat Feb 8 13:59:25 PST 2014
Hi,
On 08/02/2014, Jason Ekstrand wrote :
>
>
> For each surface with queued content updates and matching main
> output, the compositor picks the update with the highest
> timestamp no later than a half frame period after the predicted
> presentation time. The intent is to pick the content update
> whose target timestamp as rounded to the output refresh period
> granularity matches the same display update as the compositor is
> targeting, while not displaying any content update more than a
>
>
> I'm not really following 100% here. It's not your fault, this is just
> a terribly awkward sort of thing to try and put into English. It
> sounds to me like the following: If P0 is the time of the next present
> and P1 is the time of the one after that, you look for the largest
> thing less than the average of P1 and P2. Is this correct? Why go
> for the average? The client is going to have to adjust anyway.
If you target t, and P0 and P1 are possible pageflips time,
if P0<t<(1/2)P0+(1/2)P1 then you take the pageflip at P0
if (1/2)P0+(1/2)P1<t<P1 then you take the pageflip at P1
That way the length of the intersection of the interval (t,t+time
between two pageflips) and 'time interval at which it is displayed' is
maximized.
> half frame period too early. If all the updates in the queue are
> already late, the highest timestamp update is taken regardless
> of how late it is. Once an update in a queue has been chosen,
> all remaining updates with an earlier timestamp in the queue are
> discarded.
>
>
> Ok, I think what you are saying works. Again, it's difficult to parse
> but these things always are.
>
>
>
> My one latent concern is that I still don't think we're entirely
> handling the case that QtQuick wants. What they want is to do their
> rendering a few frames in advance in case of CPU/GPU jitter.
> Technically, this extension handles this by the client simply doing a
> good job of guessing presentation times on a one-per-frame baseis.
> However, it doesn't allow for any damage tracking. In the case of
> QtQuick they want a linear queue of buffers where no buffer ever gets
> skipped. In this case, you could do damage tracking by allowing it to
> accumulate from one frame to another and you get all of the
> damage-tracking advantages that you had before. I'm not sure how much
> this matters, but it might be worth thinking about it.
>
If they really want to work that way, why not doing this queue client
side? It doesn't need to be done in the compositor.
> Hope that helps,
> --Jason Ekstrand
>
Axel Davy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20140208/64031ba6/attachment.html>
More information about the wayland-devel
mailing list