Carsten Behling
2018-09-28 12:52:36 UTC
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
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
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
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