Xpra: Ticket #2526: xpra start gnome-terminal last terminal line not rendered fully

"Xpra-Python3-x86_64_4.0-r24581\xpra_cmd" start ssh://user@ip/20  --microphone=off --speaker=off --webcam=no --pulseaudio=no --opengl=no --start-new-commands=yes --start=gnome-terminal
2019-12-26 17:45:36,556 Xpra GTK3 client version 4.0-r24581 64-bit
2019-12-26 17:45:36,558  running on Microsoft Windows 10
2019-12-26 17:45:37,279 GStreamer version 1.16.1 for Python 3.8.0 64-bit
2019-12-26 17:45:37,820  keyboard settings: layout=us
2019-12-26 17:45:37,822  desktop size is 1600x900 with 1 screen:
2019-12-26 17:45:37,822   Default (423x238 mm - DPI: 96x96) workarea: 1600x860
2019-12-26 17:45:37,823     (Standard monitor types) Generic PnP Monitor (309x174 mm - DPI: 131x131)
2019-12-26 17:45:46,511 enabled remote logging
2019-12-26 17:45:46,514 Xpra GTK3 X11 server version 3.0.4-r24778 64-bit
2019-12-26 17:45:46,515  running on Linux Ubuntu 16.04 xenial
2019-12-26 17:45:48,528 server is not responding, drawing spinners over the windows
(xpra_cmd:13256): Pango-WARNING **: 17:45:52.271: couldn't load font "Bitstream Vera Sans Not-Rotated 14.662109375", falling back to "Sans Not-Rotated 14.662109375", expect ugly output.
2019-12-26 17:45:52,286 server is OK again
2019-12-26 17:46:30,836 UI thread is now blocked
2019-12-26 17:46:31,167 UI thread is running again, resuming

With or without --opengl, it's the same

If I type, the last line of the terminal (regardless of its position on the screen), only the top half is rendered (see video).

Also, maximizing the window renders it weirdly (green is the accent color of Win10, see image)

If I de-focus, and re-focus the window, then the window is fully drawn (see also video)



Thu, 26 Dec 2019 15:51:25 GMT - stdedos: attachment set


Thu, 26 Dec 2019 15:51:38 GMT - stdedos: attachment set


Wed, 19 Feb 2020 21:39:32 GMT - stdedos:

Situation might be a bit better in r25280:

Transparency is still a little broken, and now it helps: You can see (1) the "real" caret leftover, (2) the blinking caret above it (now invisible), (3) where my caret really is (now invisible), and (4) the "missing" caret leftover.


Wed, 19 Feb 2020 21:39:57 GMT - stdedos: attachment set


Wed, 19 Feb 2020 21:40:04 GMT - stdedos: attachment set


Thu, 20 Feb 2020 19:42:52 GMT - stdedos: attachment set


Thu, 20 Feb 2020 19:43:10 GMT - stdedos: attachment set


Thu, 20 Feb 2020 19:48:09 GMT - stdedos:

All of that comment is rendered by:

"Xpra-Python3-x86_64_4.0-r25314\xpra_cmd" start ssh://user@ip/20 --ssh="plink -ssh -agent" --microphone=off --speaker=off --webcam=no --pulseaudio=no --start=gnome-terminal
2020-02-20 21:52:17,629 Xpra GTK3 client version 4.0-r25314 64-bit
2020-02-20 21:52:17,645  running on Microsoft Windows 10
2020-02-20 21:52:18,348 GStreamer version 1.16.2 for Python 3.8.1 64-bit
2020-02-20 21:52:18,535 keyboard layout code 0x409
2020-02-20 21:52:18,535 identified as 'United States - English' : us
2020-02-20 21:52:18,926  keyboard settings: layout=us
2020-02-20 21:52:18,926  desktop size is 1600x900 with 1 screen:
2020-02-20 21:52:18,926   Default (423x238 mm - DPI: 96x96) workarea: 1600x860
2020-02-20 21:52:18,926     (Standard monitor types) Generic PnP Monitor (309x174 mm - DPI: 131x131)
2020-02-20 21:52:33,673 enabled remote logging
2020-02-20 21:52:33,673 Xpra GTK3 X11 server version 3.0.6-r25174 64-bit
2020-02-20 21:52:33,673  running on Linux Ubuntu 16.04 xenial
(xpra_cmd:10924): Pango-WARNING **: 21:52:35.939: couldn't load font "Bitstream Vera Sans Not-Rotated 14.662109375", falling back to "Sans Not-Rotated 14.662109375", expect ugly output.

but works the same if I start with --opengl=no --start-new-commands=yes


I cannot capture the full effect of leaking transparency (1) with any screen capturing, including the native Windows one.


Some other weird rendering (click-hold+drag upwards)


It seems that both problems go away when the window is de-focused (1), e.g. opening the Start Menu.

I think all screen capturing tools create an invisible full-screen window, which de-focuses xpra, and some magic happens.


Thu, 20 Feb 2020 19:54:40 GMT - stdedos: attachment set


Wed, 04 Mar 2020 05:16:13 GMT - Antoine Martin: owner changed

I think all screen capturing tools create an invisible full-screen window, which de-focuses xpra, and some magic happens.

Can you capture the log output with -d draw of just when the display goes corrupt? (and maybe also, of when the screenshot fixes it - separately)


Wed, 04 Mar 2020 15:28:36 GMT - stdedos:

Unfortunately, I couldn't add newlines to the terminal, so that I can cut output "cleanly". Luckily, the output is quite short:

"Xpra-Python3-x86_64_4.0-r25468\xpra_cmd" start ssh://user@ip/2 --ssh="plink -ssh -agent" -d draw --microphone=off --speaker=off --webcam=no --pulseaudio=no --opengl=no --start-new-commands=yes --start=gnome-terminal
2020-03-04 17:23:41,438 Xpra GTK3 client version 4.0-r25468 64-bit
2020-03-04 17:23:41,440  running on Microsoft Windows 10
2020-03-04 17:23:42,249 GStreamer version 1.16.2 for Python 3.8.2 64-bit
2020-03-04 17:23:42,479 keyboard layout code 0x409
2020-03-04 17:23:42,480 identified as 'United States - English' : us
2020-03-04 17:23:42,811  keyboard settings: layout=us
2020-03-04 17:23:42,813  desktop size is 1600x900 with 1 screen:
2020-03-04 17:23:42,813   Default (423x238 mm - DPI: 96x96) workarea: 1600x860
2020-03-04 17:23:42,814     (Standard monitor types) Generic PnP Monitor (309x174 mm - DPI: 131x131)
2020-03-04 17:23:49,776 enabled remote logging
2020-03-04 17:23:49,783 Xpra GTK3 X11 server version 3.0.6-r25174 64-bit
2020-03-04 17:23:49,789  running on Linux Ubuntu 16.04 xenial
(xpra_cmd:560): Pango-WARNING **: 17:23:50.337: couldn't load font "Bitstream Vera Sans Not-Rotated 14.662109375", falling back to "Sans Not-Rotated 14.662109375", expect ugly output.
2020-03-04 17:23:51,403 UI thread is now blocked
2020-03-04 17:23:51,712 UI thread is running again, resuming
2020-03-04 17:23:51,761 process_draw:   10534    bytes for window   1, sequence        1,  732x431  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (732, 431), b'lz4': 1}
2020-03-04 17:23:51,768 sending ack: ('damage-sequence', 1, 1, 732, 431, 4110, '')
2020-03-04 17:23:52,388 process_draw:      25    bytes for window   1, sequence        2,   13x20   at  198,21   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (732, 431), b'lz4': 1}
2020-03-04 17:23:52,394 sending ack: ('damage-sequence', 2, 1, 13, 20, 693, '')
2020-03-04 17:23:52,983 process_draw:      48    bytes for window   1, sequence        3,   13x20   at  198,21   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (732, 431), b'lz4': 1}
2020-03-04 17:23:52,989 sending ack: ('damage-sequence', 3, 1, 13, 20, 636, '')
2020-03-04 17:23:53,583 process_draw:      25    bytes for window   1, sequence        4,   13x20   at  198,21   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (732, 431), b'lz4': 1}
2020-03-04 17:23:53,590 sending ack: ('damage-sequence', 4, 1, 13, 20, 641, '')
2020-03-04 17:23:54,183 process_draw:      48    bytes for window   1, sequence        5,   13x20   at  198,21   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (732, 431), b'lz4': 1}
2020-03-04 17:23:54,189 sending ack: ('damage-sequence', 5, 1, 13, 20, 711, '')
2020-03-04 17:23:54,759 process_draw:    2670    bytes for window   1, sequence        6,  211x37   at    0,21   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'store': 15, b'window-size': (732, 431), b'bucket': 0, b'lz4': 1}
2020-03-04 17:23:54,762 sending ack: ('damage-sequence', 6, 1, 211, 37, 358, '')
2020-03-04 17:23:54,793 process_draw:    5894    bytes for window   1, sequence        7,  544x20   at    0,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'store': 17, b'window-size': (732, 431), b'bucket': 1, b'lz4': 1}
2020-03-04 17:23:54,799 sending ack: ('damage-sequence', 7, 1, 544, 20, 723, '')
2020-03-04 17:23:55,335 process_draw:      21    bytes for window   1, sequence        8,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (732, 431), b'lz4': 1}
2020-03-04 17:23:55,342 sending ack: ('damage-sequence', 8, 1, 13, 20, 557, '')
2020-03-04 17:23:55,627 process_draw:   31262    bytes for window   1, sequence        9, 1596x822  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:55,664 sending ack: ('damage-sequence', 9, 1, 1596, 822, 31036, '')
2020-03-04 17:23:55,938 process_draw:      44    bytes for window   1, sequence       10,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:55,944 sending ack: ('damage-sequence', 10, 1, 13, 20, 611, '')
2020-03-04 17:23:56,537 process_draw:      21    bytes for window   1, sequence       11,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:56,543 sending ack: ('damage-sequence', 11, 1, 13, 20, 698, '')
2020-03-04 17:23:57,138 process_draw:      44    bytes for window   1, sequence       12,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:57,144 sending ack: ('damage-sequence', 12, 1, 13, 20, 911, '')
2020-03-04 17:23:57,758 process_draw:   31236    bytes for window   1, sequence       13, 1596x822  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:57,783 sending ack: ('damage-sequence', 13, 1, 1596, 822, 20120, '')
2020-03-04 17:23:58,340 process_draw:      44    bytes for window   1, sequence       14,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:58,346 sending ack: ('damage-sequence', 14, 1, 13, 20, 663, '')
2020-03-04 17:23:58,940 process_draw:      21    bytes for window   1, sequence       15,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:58,943 sending ack: ('damage-sequence', 15, 1, 13, 20, 307, '')
2020-03-04 17:23:59,541 process_draw:      44    bytes for window   1, sequence       16,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:23:59,547 sending ack: ('damage-sequence', 16, 1, 13, 20, 766, '')
2020-03-04 17:24:00,141 process_draw:      21    bytes for window   1, sequence       17,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:00,148 sending ack: ('damage-sequence', 17, 1, 13, 20, 1211, '')
2020-03-04 17:24:00,742 process_draw:      44    bytes for window   1, sequence       18,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:00,769 sending ack: ('damage-sequence', 18, 1, 13, 20, 637, '')
2020-03-04 17:24:01,343 process_draw:      21    bytes for window   1, sequence       19,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:01,347 sending ack: ('damage-sequence', 19, 1, 13, 20, 552, '')
2020-03-04 17:24:01,943 process_draw:      44    bytes for window   1, sequence       20,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:01,945 sending ack: ('damage-sequence', 20, 1, 13, 20, 303, '')
2020-03-04 17:24:02,543 process_draw:      21    bytes for window   1, sequence       21,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:02,546 sending ack: ('damage-sequence', 21, 1, 13, 20, 322, '')
2020-03-04 17:24:03,145 process_draw:      44    bytes for window   1, sequence       22,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:03,151 sending ack: ('damage-sequence', 22, 1, 13, 20, 1019, '')
2020-03-04 17:24:03,745 process_draw:      21    bytes for window   1, sequence       23,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:03,748 sending ack: ('damage-sequence', 23, 1, 13, 20, 816, '')
2020-03-04 17:24:04,347 process_draw:      44    bytes for window   1, sequence       24,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:04,350 sending ack: ('damage-sequence', 24, 1, 13, 20, 591, '')
2020-03-04 17:24:04,948 process_draw:      21    bytes for window   1, sequence       25,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:04,954 sending ack: ('damage-sequence', 25, 1, 13, 20, 1108, '')
2020-03-04 17:24:05,416 process_draw:   31262    bytes for window   1, sequence       26, 1596x822  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:05,453 sending ack: ('damage-sequence', 26, 1, 1596, 822, 31356, '')
2020-03-04 17:24:05,547 process_draw:      44    bytes for window   1, sequence       27,   13x20   at  531,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:05,554 sending ack: ('damage-sequence', 27, 1, 13, 20, 657, '')
2020-03-04 17:24:05,657 process_draw:       2   arrays for window   1, sequence       28, 1596x822  at    0,0    using scroll encoding with options={b'window-size': (1596, 822), b'flush': 1}
2020-03-04 17:24:05,664 process_draw:    6265    bytes for window   1, sequence       29, 1596x18   at    0,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:05,673 sending ack: ('damage-sequence', 28, 1, 1596, 822, 9585, '')
2020-03-04 17:24:05,684 sending ack: ('damage-sequence', 29, 1, 1596, 18, 16102, '')
2020-03-04 17:24:07,335 process_draw:   12277    bytes for window   1, sequence       30, 1586x37   at    0,38   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:07,343 sending ack: ('damage-sequence', 30, 1, 1586, 37, 1736, '')
2020-03-04 17:24:07,919 process_draw:      21    bytes for window   1, sequence       31,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:07,926 sending ack: ('damage-sequence', 31, 1, 13, 20, 616, '')
2020-03-04 17:24:08,519 process_draw:      44    bytes for window   1, sequence       32,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:08,525 sending ack: ('damage-sequence', 32, 1, 13, 20, 647, '')
2020-03-04 17:24:09,120 process_draw:      21    bytes for window   1, sequence       33,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:09,127 sending ack: ('damage-sequence', 33, 1, 13, 20, 627, '')
2020-03-04 17:24:09,720 process_draw:      44    bytes for window   1, sequence       34,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:09,725 sending ack: ('damage-sequence', 34, 1, 13, 20, 596, '')
2020-03-04 17:24:10,424 process_draw:      21    bytes for window   1, sequence       35,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:10,431 sending ack: ('damage-sequence', 35, 1, 13, 20, 645, '')
2020-03-04 17:24:11,025 process_draw:      44    bytes for window   1, sequence       36,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:11,032 sending ack: ('damage-sequence', 36, 1, 13, 20, 961, '')
2020-03-04 17:24:11,245 process_draw:   36934    bytes for window   1, sequence       37, 1596x822  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:11,268 sending ack: ('damage-sequence', 37, 1, 1596, 822, 20139, '')
2020-03-04 17:24:11,625 process_draw:      21    bytes for window   1, sequence       38,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:11,628 sending ack: ('damage-sequence', 38, 1, 13, 20, 489, '')
2020-03-04 17:24:12,208 process_draw:   36796    bytes for window   1, sequence       39, 1596x822  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:12,224 sending ack: ('damage-sequence', 39, 1, 1596, 822, 13480, '')
2020-03-04 17:24:12,227 process_draw:      44    bytes for window   1, sequence       40,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:12,233 sending ack: ('damage-sequence', 40, 1, 13, 20, 4960, '')
2020-03-04 17:24:12,445 process_draw:       2   arrays for window   1, sequence       41, 1596x822  at    0,0    using scroll encoding with options={b'window-size': (1596, 822), b'flush': 1}
2020-03-04 17:24:12,451 process_draw:    6147    bytes for window   1, sequence       42, 1596x18   at    0,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:12,460 sending ack: ('damage-sequence', 41, 1, 1596, 822, 8988, '')
2020-03-04 17:24:12,470 sending ack: ('damage-sequence', 42, 1, 1596, 18, 15085, '')
2020-03-04 17:24:12,827 process_draw:      21    bytes for window   1, sequence       43,   13x20   at  531,55   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:12,833 sending ack: ('damage-sequence', 43, 1, 13, 20, 640, '')
2020-03-04 17:24:12,987 process_draw:   36770    bytes for window   1, sequence       44, 1596x822  at    0,0    using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:13,011 sending ack: ('damage-sequence', 44, 1, 1596, 822, 21945, '')
2020-03-04 17:24:13,231 process_draw:    6110    bytes for window   1, sequence       45, 1596x17   at    0,56   using  rgb32 encoding with options={b'rgb_format': b'BGRA', b'window-size': (1596, 822), b'lz4': 1}
2020-03-04 17:24:13,249 sending ack: ('damage-sequence', 45, 1, 1596, 17, 9512, '')

Thu, 19 Mar 2020 14:18:39 GMT - stdedos: owner changed

See also ticket:2618#comment:4


Thu, 19 Mar 2020 14:51:29 GMT - Antoine Martin: status changed; resolution set

I have seen it, and I am quite confident that the problem is the same as #2618 but harder to trigger.

Let's close this one and follow up in #2618.


Sat, 23 Jan 2021 05:53:40 GMT - migration script:

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2526