vsync not working with a rotated display
Problem description
Short description: Window tearing while dragging the window or scrolling with the rotated display.
I tried various window managers/compositors with the same result. I enabled vsync, it works fine with the 'normal' display, but once it's rotated, bad tearing occurs.
It doesn't seem limited even to the particular hardware, the bug is confirmed on different architectures.
Here is a longer description of the issue, on the picom repository on GitHub: https://github.com/yshui/picom/issues/328
Here is a video showing the issue: https://www.youtube.com/watch?v=e4KI9Xr45q8
Some info from the GitHub issue:
Platform
Raspbian on a compute module 3, output of uname -a:
Linux raspberrypi 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l GNU/Linux
GPU, drivers, and screen setup
vc4-kms-v3d
a custom DSI panel that starts in 800x1280 mode
rotated display to landscape (1280x800) with xrandr --output DSI-1 --rotate left
Environment
I tried this with several different setups, it behaves the same. For example, xfc4 and lxde. vsync is working fine when the screen is not rotated, but once it's rotated, windows tearing occurs, very visible if dragging the window or scrolling.
Steps of reproduction
- Enable compton as above (or picom, or some other, including the one from xwm4), at autostart (if xfce4 is used, its own one must be disabled).
- Rotate the screen.
- Drag a window around.
Expected behavior
No tearing, as in the non rotated case.
More info
Apparently the issue does not exist if using Wayland/Weston.