Fix scissoring of VBO rendering in multi-screen setup on Wayland
ClosedPublic

Authored by graesslin on Oct 6 2016, 8:03 AM.

Details

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.

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
graesslin updated this revision to Diff 7132.Oct 6 2016, 8:03 AM
graesslin retitled this revision from to Fix scissoring of VBO rendering in multi-screen setup on Wayland.
graesslin updated this object.
graesslin edited the test plan for this revision. (Show Details)
graesslin added reviewers: KWin, Plasma on Wayland.
Restricted Application added projects: Plasma on Wayland, KWin. · View Herald TranscriptOct 6 2016, 8:03 AM
Restricted Application added subscribers: kwin, plasma-devel. · View Herald Transcript
sebas accepted this revision.Oct 6 2016, 10:19 AM
sebas added a reviewer: sebas.
sebas added a subscriber: sebas.

sounds sensible.

This revision is now accepted and ready to land.Oct 6 2016, 10:19 AM
This revision was automatically updated to reflect the committed changes.