modesetting TearFree / VSYNC aware rotation pageflipping
carsten.behling at googlemail.com
Wed Oct 3 14:22:16 UTC 2018
thanks for responding.
> Basically you're comparing apples (TearFree, the amdgpu/radeon driver
> changes above) and oranges (DRI page flipping, the modesetting change
> DRI page flipping is an old mechanism (supported by the amdgpu/radeon
> drivers as well, "forever", since long before TearFree) for direct
> scanout from buffers whose contents were produced with direct rendering
> by the client. Because it scans out directly, output transformations
> such as rotation are traditionally not supported with DRI page flipping.
I see. So I have to double buffer the rotated buffer and flip it on vsync.
According to this discussion
it should be able to double-buffer the rotated frontbuffer and let a
trigger rendering to the offscreen buffer and wait for vsync to flip. Right?
> TearFree uses separate dedicated scanout buffers, to which the "main"
> buffer contents are copied on demand.
> Originally, these three things (DRI page flipping, rotation and
> TearFree) were separate and mutually exclusive. However, the
> amdgpu/radeon drivers support all of them the same time these days; this
> still requires an extra copy in some cases, but that could be eliminated
> at least in the non-rotated DRI page flipping case.
> https://gitlab.freedesktop.org/xorg/xserver/merge_requests/24 has the
> start of TearFree support for the modesetting driver, but it's still
> mutually exclusive with rotation (DRI3 page flipping should work with
> TearFree, but may still exhibit tearing if the client/user disables
Couldn't we extend modesetting in addition to Martin's TearFree patch the
same way you did here for Radeon?:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the xorg