<div dir="ltr">Hey,<br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 19, 2018 at 5:33 PM, Olivier Fourdan <span dir="ltr"><<a href="mailto:ofourdan@redhat.com" target="_blank">ofourdan@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div class="gmail_extra"><br><div class="gmail_extra"></div>But there are still oddities, like some window remaining black for like 2~3 seconds after re-mapping.<br><br></div>Closing the skypeforlinux toplevel and restoring it by running it again triggers the black window for a few second issue (skype doesn't really quit, it remains running, until it's recalled again, so this is the same X11 client)<br></div></div></blockquote></div><br><br></div><div class="gmail_extra">So some quick update on those differed content update, those are caused by dequeuing events waiting for the expected target msc.<br><br></div><div class="gmail_extra">I'm quite old school and printf() is usually my preferred approach to investigate such issues...<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">On first map, everything is fine:<br><br>|  xwl_present_queue_vblank: xwl_window 0x2c258d0 target 3<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 2 msc 2<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 2 msc 2<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 3 msc 2<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 3 msc 3<br>|  xwl_present_queue_vblank: win 0x2c28430<br>|  xwl_present_queue_vblank: xwl_window 0x2c258d0 target 4<br>|  xwl_present_queue_vblank: win 0x2c28430<br>|  xwl_present_queue_vblank: xwl_window 0x2c258d0 target 5<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 4 msc 4<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 5 msc 4<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 5 msc 5<br>|  ...<br>|  xwl_present_queue_vblank: xwl_window 0x2c258d0 target 218<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 217 msc 217<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 218 msc 217<br>|  xwl_present_events_notify: xwl_window 0x2c258d0 target 218 msc 218<br><br></div><div class="gmail_extra">All is well, the target and msc are kept in sync, windows update occurs as expected, with vblank and all.<br><br></div><div class="gmail_extra">Then the window is closed (thus unrealized) and shown again, and the expected msc goes back to 1 but the target is still at its old (much higher) value:<br><br>|  xwl_present_queue_vblank: win 0x2c28430<br>|  xwl_present_queue_vblank: xwl_window 0x2d3bc20 target 219<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 219 msc 2<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 219 msc 3<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 219 msc 4<br>|  xwl_present_queue_vblank: win 0x2c28430<br>|  xwl_present_queue_vblank: xwl_window 0x2d3bc20 target 220<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 219 msc 5<br>|  ...<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 219 msc 83<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 220 msc 83<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 219 msc 84<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 220 msc 84<br>|  ...<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 220 msc 219<br>|  xwl_present_queue_vblank: win 0x2c28430<br>|  xwl_present_queue_vblank: xwl_window 0x2d3bc20 target 221<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 220 msc 220<br>|  xwl_present_events_notify: xwl_window 0x2d3bc20 target 221 msc 220<br>|  xwl_present_queue_vblank: win 0x2c28430<br><br></div><div class="gmail_extra">And bam! it's showing its content when the current msc reaches the target msc.<br><br></div><div class="gmail_extra">So basically, the more you wait before unmapping the window, the longer you'll have to wait before its content shows up again on re-map...<br><br></div><div class="gmail_extra">Cheers,<br></div><div class="gmail_extra">Olivier<br></div></div>