graesslin created this revision. graesslin added reviewers: KWin, Plasma on Wayland. Restricted Application added subscribers: kwin, plasma-devel. Restricted Application added projects: Plasma on Wayland, KWin.
REVISION SUMMARY On Wayland in multi-screen a "window" is used to render to per screen. In OpenGL every "window" is at 0/0 and scissoring is in respect to the window geometry. The rendering geometry passed to VBO rendering, which performs the scissoring, is in virtual combined screen geometry space. Thus the scissoring always removes any rendering on the second screen. This results in e.g. wobbly windows not working on any additional screen on Wayland. This change makes the VBO rendering multi-screen aware by passing the current virtual window geometry in each rendering pass. That replaces the so far used virtual screen size. For single screen rendering or multi-screen rendering on X11 this doesn't change anything as there is always only one OpenGL window and the screen geoemetry starts at 0/0. Thus the subtracting of x/y geometry do not affect the scissoring at all. REPOSITORY rKWIN KWin BRANCH vertex-buffer-scissoring-multi-screen REVISION DETAIL https://phabricator.kde.org/D2955 AFFECTED FILES libkwineffects/kwinglutils.cpp libkwineffects/kwinglutils.h scene_opengl.cpp EMAIL PREFERENCES https://phabricator.kde.org/settings/panel/emailpreferences/ To: graesslin, #kwin, #plasma_on_wayland Cc: plasma-devel, kwin, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas