Enerccio / ewlc

Wayland compositor library - extended
MIT License
20 stars 3 forks source link

Disappearing / black views #40

Open WLCIssuesBot opened 7 years ago

WLCIssuesBot commented 7 years ago

Issue by sce Wednesday Oct 28, 2015 at 21:00 GMT Originally opened as https://github.com/Cloudef/wlc/issues/79


(This bug appears in sway, but since I think the root cause might be in wlc so I'm posting it here.)

In sway, in the following situations: A) You move a floating window to another visible workspace (ie. another output) with at least one other non-floating window, or B) You already have a workspace that is not in focus (ie. on another output) which contains at least two windows (where one window must be non-floating and the other can be either floating or non-floating), and you change tty back and forth ...

... then one of the windows will sometimes disappear/become black.

If you then move the pointer over the disappeared window or you remove the other still visible window, the disappeared window reappears.

(Similar symptoms as issue SirCmpwn/sway#141)

When changing tty back-and-forth, if the tty you switch to has an Xorg desktop on it then the bug will trigger more easily (... trigger more easily than if you switch to a console).

WLCIssuesBot commented 7 years ago

Comment by sce Thursday Oct 29, 2015 at 21:44 GMT


After some more investigation it seems that an x11 window needs to be involved to trigger the bug.

In situation B, the window that is "on top" / last had focus will "survive", and the other(s) will go black (x11 or wayland, doesn't matter). Once one of the disappeared windows receive focus again then all windows re-appear.

This is how it looks after gkrellm has turned black. (It is floating in front of a visible terminal window.) Once it receives focus it becomes visible again:

[wlc] -> Repaint
[wlc] -> Finished frame
[wlc] -> Attach request
[wlc] -> Damage request
[wlc] -> Frame request
[wlc] -> Attached surface (8) with buffer of size (1920x1080)
[wlc] -> Activity marked
[wlc] -> Repaint scheduled
[wlc] => surface view 5
[wlc] -> Commit request
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Interpolated idle time 41.000000 (50 : 0)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Repaint
[wlc] -> Activity marked
[wlc] -> Interpolated idle time 41.000000 (50 : 0)
[wlc] -> Finished frame
[wlc] -> Interpolated idle time 1.000000 (16 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Activity marked
[wlc] -> Attach request
[wlc] -> Damage request
[wlc] -> Frame request
[wlc] -> Attached surface (8) with buffer of size (1920x1080)
[wlc] -> Activity marked
[wlc] => surface view 5
[wlc] -> Commit request
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Interpolated idle time 1.000000 (16 : 1)
[wlc] -> Finished frame
[wlc] -> Activity marked
[wlc] -> Repaint
[wlc] -> Repaint
[wlc] -> Finished frame
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Activity marked
[wlc] -> Repaint
[wlc] -> Interpolated idle time 41.000000 (50 : 0)
[wlc] -> Finished frame
[wlc] -> Repaint
Setting focus to 0x173d8f0:7 (VIEW 'gkrellm')
[wlc] -> Attach request
[wlc] -> Damage request
[wlc] -> Frame request
[wlc] -> Attached surface (8) with buffer of size (1920x1080)
[wlc] -> Activity marked
[wlc] -> Repaint scheduled
[wlc] => surface view 5
[wlc] -> Commit request
[wlc] -> Interpolated idle time 41.000000 (50 : 0)
[wlc] -> Finished frame
[wlc] -> Attach request
[wlc] -> Damage request
[wlc] -> Frame request
[wlc] -> Attached surface (12) with buffer of size (1920x1080)
[wlc] => surface view 6
[wlc] -> Commit request
[wlc] -> Repaint
[wlc] -> Interpolated idle time 1.000000 (16 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] => pending view commit 6 (0) pending: 1920x1080 commited: 1920x1080 surface: 1920x1080
[wlc] => commit view 6
[wlc] => pending view commit 7 (0) pending: 112x926 commited: 112x926 surface: 112x926
[wlc] => commit view 7
[wlc] -> Repaint
[wlc] -> Activity marked
[wlc] -> Finished frame
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Activity marked
[wlc] -> Attach request
[wlc] -> Damage request
[wlc] -> Frame request
[wlc] -> Attached surface (8) with buffer of size (1920x1080)
[wlc] -> Activity marked
[wlc] -> Repaint scheduled
[wlc] => surface view 5
[wlc] -> Commit request
[wlc] -> Repaint
[wlc] -> Repaint
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Interpolated idle time 1.000000 (16 : 1)
[wlc] -> Finished frame
[wlc] -> Interpolated idle time 41.000000 (50 : 0)
[wlc] -> Finished frame
[wlc] -> Repaint
[wlc] -> Repaint
[wlc] -> Activity marked
[wlc] -> Interpolated idle time 41.000000 (50 : 0)
[wlc] -> Finished frame
[wlc] -> Attach request
[wlc] -> Damage request
[wlc] -> Frame request
[wlc] -> Attached surface (15) with buffer of size (112x926)
[wlc] => surface view 7
[wlc] -> Commit request
[wlc] -> Finished frame
[wlc] -> Interpolated idle time 1.000000 (17 : 1)
[wlc] -> Finished frame
[wlc] -> Repaint
WLCIssuesBot commented 7 years ago

Comment by Cloudef Friday Oct 30, 2015 at 10:28 GMT


Thank you. According to log it seems surfaces and render-loop itself seems to be as expected. It will need deeper investigation.

WLCIssuesBot commented 7 years ago

Comment by sce Friday Oct 30, 2015 at 14:00 GMT


I made a video to demonstrate this bug (in case you can't reproduce it yourself): https://youtu.be/jnTs81UXJmg , hopefully this is helpful.

WLCIssuesBot commented 7 years ago

Comment by Cloudef Tuesday Nov 03, 2015 at 13:17 GMT


That looks like the texture for the surface is not reuploaded after context is recreated. This helps track down the issue.

WLCIssuesBot commented 7 years ago

Comment by sce Tuesday Nov 03, 2015 at 21:51 GMT


Excellent, glad to hear that. Debugging this issue is kinda out of my league, but let me know if there's anything else I can do to help.

WLCIssuesBot commented 7 years ago

Comment by Cloudef Thursday Nov 12, 2015 at 18:11 GMT


Hmm, for some reason I can't reproduce this on neither orbment or sway. Can you check if I accidentally fixed it on commit 19b48a2

WLCIssuesBot commented 7 years ago

Comment by sce Thursday Nov 12, 2015 at 19:08 GMT


Unfortunately I can still reproduce this reliably, like in the video :-/

WLCIssuesBot commented 7 years ago

Comment by Earnestly Thursday Nov 12, 2015 at 19:10 GMT


Perhaps it's driver related? I assume you're on mesa, but with which driver?

WLCIssuesBot commented 7 years ago

Comment by sce Thursday Nov 12, 2015 at 19:12 GMT


My hardware is radeon 6950 (cayman) which would be the r600 driver.