1. Launch Weston
2. Launch Weston-terminal
3. Press <f11> for fullscreen
4. Execute terminal from fullscreen: weston-terminal
5. Activate exposay
6. Deactivate exposay
7. Observe surfaces does not render correctly. See attached video.
wayland (HEAD) 1.3.92-0-gc102c20
drm (HEAD) libdrm-2.4.50-0-g4c5de72
mesa (HEAD) remotes/origin/10.0-0-g3a62718
libva (HEAD) libva-1.2.1-0-g88ed1eb
intel-driver (HEAD) 1.2.1-0-g8f306e3
weston (HEAD) 1.3.92-0-gb637a40
Created attachment 92005 [details]
I can reproduce this on the drm backend, but on x11 it works just fine.
There's no corruption when running on the drm backend with the pixman renderer either. So it only seems to happen on the drm backend with the egl renderer.
Some more hints:
launch weston-terminal, fullscreen it, type weston-terminal and hit enter, press mod
goes to exposay with a black background (and screen corruption in the drm compositor), but
launch weston-terminal, fullscreen it, type weston-terminal and hit enter, press mod+tab twice, press mod
goes to exposay with a normal background (and no screen corruption)
This seems related to the fullscreen black views, though I haven't figured out why it happens in the first case but not in the second yet.
Commenting here so nobody duplicates work... I have a fix for this but I've found a few more somewhat related bugs and I'm trying to find a solution that suites every problem.
Author: Emilio Pozuelo Monfort <firstname.lastname@example.org>
Date: Thu Jan 30 14:01:10 2014 +0100
desktop-shell: Properly handle lowered fullscreen surfaces
lower_fullscreen_surface() was removing fullscreen surfaces from
the fullscreen layer and inserting them in the normal workspace
layer. However, those fullscreen surfaces were never put back in
the fullscreen layer, causing bugs such as unrelated surfaces
being drawn between a fullscreen surface and its black view.
Change the lower_fullscreen_surface() logic so that it lowers
fullscreen surfaces to the workspace layer *and* hides the
black views. Make this reversible by re-configuring the lowered
fullscreen surface: when it is re-configured, the black view
will be shown again and the surface will be restacked in the