[platforms/drm] Introduce Gl post-process output rotations
Summary:
In case the hardware is not able to rotate the output for the configured
rotation value do this rotation in a post-process step.
For that rendering the current view into a separate framebuffer bound to a
texture that then gets sampled to the default framebuffer in an additional
rendering pass through a simple shader rotating it.
This allows us to leave the Effects system and internal model-view-projection
matrix untouched. The rotation in the post-processing step is isolated.
BUG: 389665
FIXED-IN: 5.18
Test Plan: With KScreen all rotations work.
Reviewers: KWin
Subscribers: davidedmundson, PureTryOut, z3ntu, zzag, univerz, kwin
Tags: KWin
Maniphest Tasks: T6106
Differential Revision: https://phabricator.kde.org/D25907