modesetting TearFree / VSYNC aware rotation pageflipping

Carsten Behling carsten.behling at googlemail.com
Fri Sep 28 12:52:36 UTC 2018


Hi all,

I noticed ugly tearing when rotating the screen with modesetting.

I already noticed this thread

https://bugs.freedesktop.org/show_bug.cgi?id=98876

that suggests to implement the TearFree option into modesetting.

So I took a look on the amd and ati implementations

https://cgit.freedesktop.org/xorg/driver/xf86-video-amdgpu/commit/?id=c57da33308a81fa575179238a0415abcb8b34908

https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=43159ef400c3b18b9f4d3e6fa1c4aef2d60d38fe

and compared it to modesetting and I found that pageflipping is already
implemented since this patch:

https://lists.x.org/archives/xorg-devel/2015-May/046271.html

But:

1. The above stated Freedesktop bug is older and the modesetting
pageflipping implementation is not mentioned there in the TearFree context.
But e.g. AMD GPU is  doing a very similar thing for TearFree.
2. Modesettings pageflipping is disabled on rotation and I found just that
comment in the above patch:
> Don't do pageflipping if CRTCs are rotated (caught by Jason Ekstrand).

So here are my questions:

1. What is the difference between flipping the scanout buffers in
amdgpu/ati and the front buffer and back buffer flipping in modesetting?

2. I suppose in both cases that are real video buffers instead of shadow
buffers for rotation. Right?

3. I did not found any background info about the limitation for
pageflipping caught by Jason. Can anyone give me some more info? Since
amdgpu does the nearly the same with its two scanout buffers it shouldn't
be a big problem.

So if TearFree support or something else that makes more sense is still an
issue I can add that feature. I just need a little help.

Best regards
-Carsten
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg/attachments/20180928/73e5e66b/attachment.html>


More information about the xorg mailing list