Bug 73575 - Incorrect surface rendering in fullscreen mode when exposay is activated
Summary: Incorrect surface rendering in fullscreen mode when exposay is activated
Alias: None
Product: Wayland
Classification: Unclassified
Component: weston (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
Depends on:
Reported: 2014-01-13 22:44 UTC by Anu Reddy
Modified: 2014-05-08 22:21 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

exposay_fullscreen (2.30 MB, Video/webm)
2014-01-13 22:46 UTC, Anu Reddy

Description Anu Reddy 2014-01-13 22:44:36 UTC
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.

Software Stack
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
Comment 1 Anu Reddy 2014-01-13 22:46:40 UTC
Created attachment 92005 [details]
Comment 2 Emilio Pozuelo Monfort 2014-01-24 09:15:44 UTC
I can reproduce this on the drm backend, but on x11 it works just fine.
Comment 3 Emilio Pozuelo Monfort 2014-01-24 09:22:18 UTC
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.
Comment 4 Emilio Pozuelo Monfort 2014-01-27 11:33:41 UTC
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.
Comment 5 Emilio Pozuelo Monfort 2014-01-29 19:36:40 UTC
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.
Comment 6 Kristian Høgsberg 2014-04-29 23:34:07 UTC
commit 9e7c7598aa44a9caaa5ebd525426623e8e86880e
Author: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
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
    fullscreen layer.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.