2013/7/26 Keith Packard <[email protected]>:
> Maarten Lankhorst <[email protected]> writes:
>
>> The presentation part of VDPAU (which may be implemented as overlay) offers 
>> something like this with
>> the VdpPresentationQueueDisplay call. But in dri2 it fails because the 
>> window can get moved between
>> 2 crtc's, and suddenly you've queued a flip 1000 seconds in the future 
>> because the other crtc was
>> on for a shorter amount of time.
>
> In DRI3, each window has it's own 'MSC domain', which is guaranteed to
> be monotonic, and to increment about once per frame.

Which frame?

Suppose that there are two overlapping outputs with vastly different
refresh rates (say, an old 100 Hz CRT and a modern 60 Hz LCD). I'm
afraid that in some cases we'll have to invent a completely fake MSC
clock that is not associated to any of the outputs. The idea is that
the application is (falsely) told that vblanks occur at that rate,
renders perfect frames at that rate without tearing, and then these
perfect frames are buffered in order to be shown on each of the
outputs during that output's vblank. Yes, that's an extra layer of
buffering and is against the goal set forward by Keith. However, I'd
argue that his optimizations apply in other cases, but not the case of
overlapping outputs.

Sorry for not having any code to back that up.

-- 
Alexander E. Patrakov
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to