Three recent blog postings on DRI3000

Alexander E. Patrakov patrakov at gmail.com
Fri Jul 26 01:13:54 PDT 2013


2013/7/26 Keith Packard <keithp at keithp.com>:
> Maarten Lankhorst <maarten.lankhorst at canonical.com> 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


More information about the xorg-devel mailing list