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
