[x11] Name client pixmap instead of frame pixmap

Authored by zzag on Nov 29 2019, 11:27 AM.



Since KDE 4.2 - 4.3 times, KWin doesn't paint window decorations on real
X11 windows, except when compositing is turned off. This leaves us with
a problem. The actual client contents is inside a larger texture with no
useful pixel data around it. This and decoration texture bleeding are
the main factors that contribute to 1px gap between the server-side
decoration and client contents with effects such as wobbly windows, and

Another problem with naming frame pixmap instead of client pixmap is
that it doesn't quite go along with wayland. It only makes more difficult
to abstract window quad generation in the scene.

Since we don't actually need the frame window when compositing is on,
there is nothing that holds us from redirecting client windows instead
of frame windows. This will help us to fix the texture bleeding issue
and also help us with the ongoing redesign of the scene.

Test Plan

X11 clients are still composited.

Diff Detail

R108 KWin
Lint OK
No Unit Test Coverage
Build Status
Buildable 19281
Build 19299: arc lint + arc unit
zzag created this revision.Nov 29 2019, 11:27 AM
Restricted Application added a project: KWin. · View Herald TranscriptNov 29 2019, 11:27 AM
Restricted Application added a subscriber: kwin. · View Herald Transcript
zzag requested review of this revision.Nov 29 2019, 11:27 AM
davidedmundson added inline comments.

can you talk me through this change?

zzag added inline comments.Nov 29 2019, 5:32 PM

We need to reconfigure the frame window if its size gets changed. Previously, the buffer geometry and the geometry of the frame window were the same thing. Now, they are not.

I'll update this patch to make geometry handling less confusing.

zzag updated this revision to Diff 70582.Nov 29 2019, 5:46 PM


zzag updated this revision to Diff 70612.Nov 30 2019, 12:28 PM

Sneaky comment update

zzag updated this revision to Diff 70730.Dec 2 2019, 9:35 AM

Adjust shape

davidedmundson accepted this revision.Dec 2 2019, 12:59 PM
This revision is now accepted and ready to land.Dec 2 2019, 12:59 PM
This revision was automatically updated to reflect the committed changes.