Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Passing -a 16 causes wrong colors #213

Closed
paulmenzel opened this issue Dec 15, 2017 · 55 comments
Closed

Passing -a 16 causes wrong colors #213

paulmenzel opened this issue Dec 15, 2017 · 55 comments

Comments

@paulmenzel
Copy link
Contributor

paulmenzel commented Dec 15, 2017

With rdesktop 1.8.3, on two systems, one with a monitor with a resolution of 2560x1440 (AMDGPU graphics driver) and the other HiDPI/4K (3840x2160) monitor Dell U2718Q with Intel graphics, explicitly setting the color depth to 16 bit to get rid of the message below, results in inverted colors.

WARNING: Remote desktop does not support colour depth 24; falling back to 16

The resolution doesn’t matter.

Strangely, when not passing -a 16, the message quoted above suggests that 16 bit color depth is used.

Good:

20180104 rdesktop

Bad (passing -a 16):

20180104 rdesktop-a-16

@derfian
Copy link
Member

derfian commented Jan 2, 2018

That's odd. Is there anything special about your setup - an odd client/server OS, CPU, architecture, anything? I can't reproduce with just using -a 16 with the most basic tests - any further details would help.

@paulmenzel
Copy link
Contributor Author

paulmenzel commented Jan 2, 2018 via email

@derfian
Copy link
Member

derfian commented Jan 2, 2018

I used a 2560x1440 Dell monitor with Intel graphics when testing.

@paulmenzel
Copy link
Contributor Author

Very strange. If a change the resolution with xrandr this doesn’t have an effect here, so it seems independent from the resolution.

With the debug level increased in the source code directly, here is the difference in the output. Do you spot anything there?

> diff -u rdesktop-good.txt rdesktop-bad.txt
--- rdesktop-good.txt	2018-01-02 19:55:16.060388584 +0100
+++ rdesktop-bad.txt	2018-01-02 19:54:51.548292946 +0100
@@ -1,6 +1,6 @@
-> ./rdesktop -d WIS-NET sommer -k de
+> ./rdesktop -d WIS-NET sommer -k de -a 16
 Password: 
-UI(debug): RDP depth: 24, display depth: 24, display bpp: 32, X server BE: 0, host BE: 0
+UI(debug): RDP depth: 16, display depth: 24, display bpp: 32, X server BE: 0, host BE: 0
 
 Keyboard(debug): add_to_keymap(), adding translation, keysym=0xffe2, scancode=0x36, modifiers=0x0
 Keyboard(debug): add_to_keymap(), adding translation, keysym=0xffe1, scancode=0x2a, modifiers=0x0
@@ -351,7 +351,6 @@
 UI(debug): ui_create_cursor(): xhot=0, yhot=0, width=1, height=1, bpp=24
 Protocol(debug): process_demand_active(), shareid=0x103ea
 Protocol(debug): rdp_process_bitmap_caps(), setting desktop size and depth to: 1024x768x16
-Remote desktop does not support colour depth 24; falling back to 16
 Protocol(debug): rdp_out_ts_bitmap_capabilityset(), 1024x768
 Protocol(debug): rdp_recv(), RDP packet #2, type 0x7
 Protocol(debug): rdp_recv(), RDP packet #3, type 0x7
@@ -706,6 +705,10 @@
 Graphics(debug): process_memblt(), op=0xcc, x=573, y=318, cx=5, cy=36, id=2, idx=22
 Graphics(debug): process_bmpcache2(), compr=1, flags=4a1, cx=32, cy=32, id=1, idx=0, Bpp=2, bs=872
 Graphics(debug): process_memblt(), op=0xcc, x=445, y=324, cx=20, cy=20, id=1, idx=0
+Graphics(debug): process_bmpcache2(), compr=1, flags=4a1, cx=32, cy=32, id=1, idx=1, Bpp=2, bs=874
+Graphics(debug): process_memblt(), op=0xcc, x=445, y=324, cx=20, cy=20, id=1, idx=1
+Graphics(debug): process_bmpcache2(), compr=1, flags=4a1, cx=32, cy=32, id=1, idx=2, Bpp=2, bs=870
+Graphics(debug): process_memblt(), op=0xcc, x=445, y=324, cx=20, cy=20, id=1, idx=2
 Graphics(debug): process_memblt(), op=0xcc, x=212, y=79, cx=64, cy=64, id=2, idx=4
 Graphics(debug): process_memblt(), op=0xcc, x=276, y=79, cx=64, cy=64, id=2, idx=4
 Graphics(debug): process_memblt(), op=0xcc, x=340, y=79, cx=64, cy=64, id=2, idx=4

@derfian
Copy link
Member

derfian commented Jan 3, 2018

No, I'm not seeing anything strange in that log output.

@paulmenzel
Copy link
Contributor Author

Any hint, which function/variable I have to inspect to see what color is used?

@paulmenzel
Copy link
Contributor Author

Good:

20180104 rdesktop

Bad (passing -a 16):

20180104 rdesktop-a-16

@uglym8
Copy link
Member

uglym8 commented Jan 4, 2018

Just checked with the most recent sources (master).
Could not reproduce this error on WS2K8R2 passing "-a 16" to rdesktop.
Win10 and Win7Ultimate are OK too.

Although I saw this issue some time ago (alas can't remember which Windows version it was).
Exactly same colors as of the second picture.

I'm not even sure that I saw this issue with the most recent rdesktop:(

@paulmenzel, could you please check that this issue does exist in the latest master (i.e. build from clone and not from release tarball)?

@paulmenzel
Copy link
Contributor Author

paulmenzel commented Jan 4, 2018 via email

@paulmenzel
Copy link
Contributor Author

The culprit seems to be in the code below. With -a 16 g_server_depth is 16 and therefore the condition not fullfilled, and g_server_depth stays 16. Without setting the depth manually, g_server_depth is set to 24.

diff --git a/xwin.c b/xwin.c
index 474c774..52e21a3 100644
--- a/xwin.c
+++ b/xwin.c
@@ -1644,10 +1644,7 @@ select_visual(int screen_num)
 
        red_weight = blue_weight = green_weight = 0;
 
-       if (g_server_depth == -1)
-       {
-               g_server_depth = DisplayPlanes(g_display, DefaultScreen(g_display));
-       }
+       g_server_depth = DisplayPlanes(g_display, DefaultScreen(g_display));
 
        pfm = XListPixmapFormats(g_display, &pixmap_formats_count);
        if (pfm == NULL)

By the way, passing -a 24 also shows the correct colors, kind of verifying that for whatever reason the value has to be 24.

@derfian
Copy link
Member

derfian commented Jan 4, 2018

I could just be misinterpreting your intentions, but wouldn't this patch just overwrite whatever color depth you specify to -a and make it impossible to use a different color depth than your local display?

@paulmenzel
Copy link
Contributor Author

It’s not a patch, it’s just for showing where it seems to make a difference. I have no clue, where in the code execution select_visual() is executed, so if g_server_depth was used before or not. Probably not though.

@derfian
Copy link
Member

derfian commented Jan 4, 2018

From what I could grep, select_visual is called from ui_init, which is called once from rdesktop after the argument parsing (g_server_depth should contain -1 or a user-supplied color depth at this point), but before actually connecting to the RDP server where g_server_depth is used.

@paulmenzel
Copy link
Contributor Author

If I break on the first access to get_pixel(), g_server_width still differs. Without -a 16 it’s 16, and without -a it’s 24.

@paulmenzel
Copy link
Contributor Author

Watching g_server_depth, here are all the accesses to it – no -a 16 passed – before it’s reduced from 24 to 16.

(gdb) awatch g_server_depth 
Hardware access (read/write) watchpoint 2: g_server_depth
(gdb) run -d WIS-NET winter -k de
Starting program: /dev/shm/rdesktop/rdesktop -d WIS-NET winter -k de
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Password: 
Hardware access (read/write) watchpoint 2: g_server_depth

Value = -1
0x000000000041101a in select_visual (screen_num=0) at xwin.c:1647
1647		if (g_server_depth == -1)
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Old value = -1
New value = 24
select_visual (screen_num=0) at xwin.c:1652
1652		pfm = XListPixmapFormats(g_display, &pixmap_formats_count);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x0000000000411531 in select_visual (screen_num=0) at xwin.c:1800
1800					switch (g_server_depth)
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x00000000004117fb in ui_init () at xwin.c:1918
1918		if (g_server_depth > g_bpp)
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x000000000041184d in ui_init () at xwin.c:1925
1925		logger(GUI, Debug,
(gdb) 
Continuing.
Connection established using SSL.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x000000000042d127 in sec_out_mcs_connect_initial_pdu (s=0x7fffffffe080, selected_protocol=1) at secure.c:449
449		out_uint16_le(s, MIN(g_server_depth, 24));
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x000000000042d14d in sec_out_mcs_connect_initial_pdu (s=0x7fffffffe080, selected_protocol=1) at secure.c:450
450		if (g_server_depth == 32)
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x000000000043211e in rdp_process_bitmap_caps (s=0x667480 <g_in>) at rdp.c:1080
1080		if (g_server_depth != depth)
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Value = 24
0x000000000043212c in rdp_process_bitmap_caps (s=0x667480 <g_in>) at rdp.c:1082
1082			logger(Core, Verbose,
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 2: g_server_depth

Old value = 24
New value = 16
rdp_process_bitmap_caps (s=0x667480 <g_in>) at rdp.c:1091
1091		ui_resize_window(g_session_width, g_session_height);

Does somebody know, what is happening in select_visual() in xwin.c? I assume, that there different settings are set up depending on g_server_depth.

@uglym8
Copy link
Member

uglym8 commented Jan 4, 2018

I guess the culprit is here (rdp_process_bitmap_caps(): line 1085 in rdp.c

1076     /*
1077      * The server may limit depth and change the size of the desktop (for
1078      * example when shadowing another session).
1079      */
1080     if (g_server_depth != depth)
1081     {
1082         logger(Core, Verbose,
1083                "Remote desktop does not support colour depth %d; falling back to %d",
1084                g_server_depth, depth);
1085         g_server_depth = depth;
1086     }

But I don't know whether this is intentional or not.
According to comments is rather common.

@paulmenzel
Copy link
Contributor Author

paulmenzel commented Jan 4, 2018 via email

@uglym8
Copy link
Member

uglym8 commented Jan 4, 2018

What I meant to say was "the culprit of downgrading color depth from 24 to 16" not the cause of observable color inversion.

@paulmenzel
Copy link
Contributor Author

Ah, sorry for the misunderstanding. The user wanted to get rid of the downgrading message by explicitly passing -a 16. So, that’s what started this bug hunt.

@uglym8
Copy link
Member

uglym8 commented Jan 4, 2018

It's ok.
I guess I answered the question that noone asked:)

@uglym8
Copy link
Member

uglym8 commented Jan 4, 2018

@paulmenzel, do you have the box (or VM) with other Windows version to test this issue on, by any chance?
Or even the same Windows version but another physical server (maybe some not so common settings were applied)

@paulmenzel
Copy link
Contributor Author

Good

(gdb) run -d MOLGEN sommer
[…]
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 24
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) info locals 
visual_info = 0x9a01c0
can_translate_to_bpp = 0
j = 10049760
pfm = 0x9a0160
pixmap_formats_count = 7
visuals_count = 40
vmatches = 0x9a01c0
template = {visual = 0x0, visualid = 140737322410873, screen = 0, depth = 32767, class = 4, red_mask = 0, 
  green_mask = 140737488347456, blue_mask = 4227952, colormap_size = 4231641, bits_per_rgb = 0}
i = 0
red_weight = 0
blue_weight = 0
green_weight = 0
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 24
0x0000000000411531 in select_visual (screen_num=0) at xwin.c:1800
1800					switch (g_server_depth)
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 24
0x00000000004117fb in ui_init () at xwin.c:1918
1918		if (g_server_depth > g_bpp)

Bad

(gdb) run -d MOLGEN sommer -a 16
[…]
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x000000000041101a in select_visual (screen_num=0) at xwin.c:1647
1647		if (g_server_depth == -1)
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) info locals 
visual_info = 0x9a0240
can_translate_to_bpp = 0
j = 5
pfm = 0x9a0160
pixmap_formats_count = 7
visuals_count = 40
vmatches = 0x9a01c0
template = {visual = 0x0, visualid = 140737322410873, screen = 0, depth = 32767, class = 4, red_mask = 0, 
  green_mask = 140737488347440, blue_mask = 4227952, colormap_size = 4231641, bits_per_rgb = 0}
i = 2
red_weight = 8
blue_weight = 8
green_weight = 8
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) info locals 
visual_info = 0x9a0280
can_translate_to_bpp = 0
j = 5
pfm = 0x9a0160
pixmap_formats_count = 7
visuals_count = 40
vmatches = 0x9a01c0
template = {visual = 0x0, visualid = 140737322410873, screen = 0, depth = 32767, class = 4, red_mask = 0, 
  green_mask = 140737488347440, blue_mask = 4227952, colormap_size = 4231641, bits_per_rgb = 0}
i = 3
red_weight = 8
blue_weight = 8
green_weight = 8
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) info locals 
visual_info = 0x9a02c0
can_translate_to_bpp = 0
j = 5
pfm = 0x9a0160
pixmap_formats_count = 7
visuals_count = 40
vmatches = 0x9a01c0
template = {visual = 0x0, visualid = 140737322410873, screen = 0, depth = 32767, class = 4, red_mask = 0, 
  green_mask = 140737488347440, blue_mask = 4227952, colormap_size = 4231641, bits_per_rgb = 0}
i = 4
red_weight = 8
blue_weight = 8
green_weight = 8
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) info locals 
visual_info = 0x9a0300
can_translate_to_bpp = 0
j = 5
pfm = 0x9a0160
pixmap_formats_count = 7
visuals_count = 40
vmatches = 0x9a01c0
template = {visual = 0x0, visualid = 140737322410873, screen = 0, depth = 32767, class = 4, red_mask = 0, 
  green_mask = 140737488347440, blue_mask = 4227952, colormap_size = 4231641, bits_per_rgb = 0}
i = 5
red_weight = 8
blue_weight = 8
green_weight = 8
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) c
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x0000000000411224 in select_visual (screen_num=0) at xwin.c:1698
1698					g_no_translate_image = (visual_info->depth == g_server_depth);
(gdb) 
Continuing.
Hardware access (read/write) watchpoint 1: g_server_depth

Value = 16
0x00000000004117fb in ui_init () at xwin.c:1918
1918		if (g_server_depth > g_bpp)
(gdb)

@paulmenzel
Copy link
Contributor Author

So as can be seen from the GDB traces, totally different code paths are taken depending if -a 16 is passed or not. That probably results in different X(?) settings causing the translation to be off.

@bogbert
Copy link

bogbert commented Jan 6, 2018

Hi,
I'm too experiencing the same color issues with -a 16 since january the 4th.
Everything was working fine in the previous days with the same rdesktop binaries.
So I suspect a package upgrade has caused this regression.
I'm running Mint 18.2 with a 4.14.10 kernel on an intel Broadwell (using its iGPU).
If it can help, here's a the list a the latest package upgrades:

2018-01-03 10:16:08 upgrade libseccomp2:amd64 2.2.3-3ubuntu3 2.3.1-2.1ubuntu2~16.04.1
2018-01-03 14:27:03 upgrade libdrm2:amd64 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:03 upgrade libdrm2:i386 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:03 upgrade libdrm-amdgpu1:amd64 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:03 upgrade libdrm-amdgpu1:i386 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:04 upgrade libdrm-intel1:amd64 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:04 upgrade libdrm-intel1:i386 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:04 upgrade libdrm-nouveau2:amd64 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:04 upgrade libdrm-nouveau2:i386 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:05 upgrade libdrm-radeon1:amd64 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:05 upgrade libdrm-radeon1:i386 2.4.76-1~ubuntu16.04.1 2.4.83-1~16.04.1
2018-01-03 14:27:09 upgrade libgl1-mesa-dri:i386 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:10 upgrade libgl1-mesa-dri:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:12 upgrade libgbm1:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:13 upgrade libegl1-mesa:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:14 upgrade libwayland-egl1-mesa:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:15 upgrade libgles2-mesa:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:15 upgrade libgl1-mesa-glx:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:15 upgrade libgl1-mesa-glx:i386 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:15 upgrade libglapi-mesa:i386 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:16 upgrade libglapi-mesa:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-03 14:27:16 upgrade libxatracker2:amd64 17.0.7-0ubuntu0.16.04.2 17.2.4-0ubuntu1~16.04.2
2018-01-04 11:00:37 upgrade libwebkit2gtk-4.0-37:amd64 2.18.3-0ubuntu0.16.04.1 2.18.4-0ubuntu0.16.04.1
2018-01-04 11:00:38 upgrade libjavascriptcoregtk-4.0-18:amd64 2.18.3-0ubuntu0.16.04.1 2.18.4-0ubuntu0.16.04.1
2018-01-04 11:00:39 upgrade gir1.2-webkit2-4.0:amd64 2.18.3-0ubuntu0.16.04.1 2.18.4-0ubuntu0.16.04.1
2018-01-04 11:00:39 upgrade gir1.2-javascriptcoregtk-4.0:amd64 2.18.3-0ubuntu0.16.04.1 2.18.4-0ubuntu0.16.04.1
2018-01-04 11:00:40 upgrade qemu-slof:all 20151103+dfsg-1ubuntu1 20151103+dfsg-1ubuntu1.1

I don't think any library rdesktop is linked against has been upgraded here.

@paulmenzel
Copy link
Contributor Author

Mesa should not be involved as rdesktop probably does not use OpenGL. Leave libdrm as a likely candidate. Can you downgrade back from 2.4.83 to 2.4.76? Something like sudo apt install libdrm-nouveau2:i386=2.4.76-1~ubuntu16.04.1?

@hean01-cendio
Copy link
Contributor

@bogbert Do you use wayland or X11? Can you switch to X11 and see if the problem disappears?

@paulmenzel
Copy link
Contributor Author

Installing Ubuntu 17.10 with libdrm2 2.4.83, I am able to reproduce the problem.

Can the people in here, not able to reproduce this, check if they can set up such an environment?

@hean01-cendio
Copy link
Contributor

@paulmenzel when you are at it, could you test run a X11 session [1] and see if the problem persists ?

[1] https://itsfoss.com/switch-xorg-wayland/

@paulmenzel
Copy link
Contributor Author

I am running a X11 session as far as I can see.

root      1803  2.7  0.4 521548 152556 tty7    Ssl+ 09:23   0:31 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

ps aux | grep -i wayland doesn’t return anything.

@paulmenzel
Copy link
Contributor Author

With the commits from merge/pull request #229, I get the output below.

$ ./rdesktop -d WIS-NET sommer
Autoselecting keyboard map 'de' from locale
Password: 
UI(debug):    0: visual 0x21 class 4 (TrueColor) depth 24

UI(debug): RDP depth: 24, display depth: 24, display bpp: 32, X server BE: 0, host BE: 0

Core(debug): dvc_channels_add(), Added hash=67f73722, channel_id=-1, name=Microsoft::Windows::RDS::DisplayControl, handler=0x55d4ca6fc187
Connecting to server using SSL...
Connection established using SSL.
UI(debug): ui_create_window() width = 1024, height = 768
UI(debug): ui_create_cursor(): xhot=0, yhot=0, width=1, height=1, bpp=24
Remote desktop does not support colour depth 24; falling back to 16
Connection successful
UI(debug): xwin_process_events(), Window mapped with size 1024x768
UI(debug): ui_create_cursor(): xhot=10, yhot=10, width=32, height=32, bpp=1
UI(debug): ui_set_cursor(): g_current_cursor = (nil), new = 0x5e0000e
UI(debug): ui_create_cursor(): xhot=10, yhot=10, width=32, height=32, bpp=1
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e0000e, new = 0x5e00012
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e00012, new = 0x5e0000e
UI(debug): ui_create_cursor(): xhot=10, yhot=10, width=32, height=32, bpp=1
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e0000e, new = 0x5e00016
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e00016, new = 0x5e00012
Disconnecting...
$ ./rdesktop -d WIS-NET sommer -a 16
Autoselecting keyboard map 'de' from locale
Password: 
UI(debug):    0: visual 0x21 class 4 (TrueColor) depth 24

UI(debug):    1: visual 0xe8 class 4 (TrueColor) depth 24

UI(debug):    2: visual 0xe9 class 4 (TrueColor) depth 24

UI(debug):    3: visual 0xea class 4 (TrueColor) depth 24

UI(debug):    4: visual 0xeb class 4 (TrueColor) depth 24

UI(debug):    5: visual 0xec class 4 (TrueColor) depth 24

UI(debug):    6: visual 0xed class 4 (TrueColor) depth 24

UI(debug):    7: visual 0xee class 4 (TrueColor) depth 24

UI(debug):    8: visual 0xef class 4 (TrueColor) depth 24

UI(debug):    9: visual 0xf0 class 4 (TrueColor) depth 24

UI(debug):   10: visual 0xf1 class 4 (TrueColor) depth 24

UI(debug):   11: visual 0xf2 class 4 (TrueColor) depth 24

UI(debug):   12: visual 0xf3 class 4 (TrueColor) depth 24

UI(debug):   13: visual 0xf4 class 4 (TrueColor) depth 24

UI(debug):   14: visual 0xf5 class 4 (TrueColor) depth 24

UI(debug):   15: visual 0xf6 class 4 (TrueColor) depth 24

UI(debug):   16: visual 0xf7 class 4 (TrueColor) depth 24

UI(debug):   17: visual 0xf8 class 4 (TrueColor) depth 24

UI(debug):   18: visual 0xf9 class 4 (TrueColor) depth 24

UI(debug):   19: visual 0xfa class 4 (TrueColor) depth 24

UI(debug):   20: visual 0xfb class 4 (TrueColor) depth 24

UI(debug):   21: visual 0xfc class 4 (TrueColor) depth 24

UI(debug):   22: visual 0xfd class 4 (TrueColor) depth 24

UI(debug):   23: visual 0xfe class 4 (TrueColor) depth 24

UI(debug):   24: visual 0xff class 4 (TrueColor) depth 24

UI(debug):   25: visual 0x100 class 4 (TrueColor) depth 24

UI(debug):   26: visual 0x101 class 4 (TrueColor) depth 24

UI(debug):   27: visual 0x102 class 4 (TrueColor) depth 24

UI(debug):   28: visual 0x103 class 4 (TrueColor) depth 24

UI(debug):   29: visual 0x104 class 4 (TrueColor) depth 24

UI(debug):   30: visual 0x105 class 4 (TrueColor) depth 24

UI(debug):   31: visual 0x106 class 4 (TrueColor) depth 24

UI(debug):   32: visual 0x107 class 4 (TrueColor) depth 24

UI(debug):   33: visual 0x108 class 4 (TrueColor) depth 24

UI(debug):   34: visual 0x109 class 4 (TrueColor) depth 24

UI(debug):   35: visual 0x10a class 4 (TrueColor) depth 24

UI(debug):   36: visual 0x10b class 4 (TrueColor) depth 24

UI(debug):   37: visual 0x10c class 4 (TrueColor) depth 24

UI(debug):   38: visual 0x10d class 4 (TrueColor) depth 24

UI(debug):   39: visual 0x7f class 4 (TrueColor) depth 32

UI(debug): RDP depth: 16, display depth: 24, display bpp: 32, X server BE: 0, host BE: 0

Core(debug): dvc_channels_add(), Added hash=67f73722, channel_id=-1, name=Microsoft::Windows::RDS::DisplayControl, handler=0x559251c6f187
Connecting to server using SSL...
Connection established using SSL.
UI(debug): ui_create_window() width = 1024, height = 768
UI(debug): ui_create_cursor(): xhot=0, yhot=0, width=1, height=1, bpp=24
Connection successful
UI(debug): xwin_process_events(), Window mapped with size 1024x768
UI(debug): ui_create_cursor(): xhot=10, yhot=10, width=32, height=32, bpp=1
UI(debug): ui_set_cursor(): g_current_cursor = (nil), new = 0x5e0000e
UI(debug): ui_create_cursor(): xhot=10, yhot=10, width=32, height=32, bpp=1
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e0000e, new = 0x5e00012
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e00012, new = 0x5e0000e
UI(debug): ui_create_cursor(): xhot=10, yhot=10, width=32, height=32, bpp=1
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e0000e, new = 0x5e00016
UI(debug): ui_set_cursor(): g_current_cursor = 0x5e00016, new = 0x5e00012
Disconnecting...

@paulmenzel
Copy link
Contributor Author

Here is the difference in g_visual, when the windows is drawn and breaking with Ctrl + c in GDB.

Good (without -a 16)

(gdb) p *g_visual
$1 = {ext_data = 0x0, visualid = 33, class = 4, red_mask = 16711680, green_mask = 65280, 
  blue_mask = 255, bits_per_rgb = 8, map_entries = 256}

Bad (-a 16)

(gdb) p *g_visual
$3 = {ext_data = 0x0, visualid = 269, class = 4, red_mask = 255, green_mask = 65280, 
  blue_mask = 16711680, bits_per_rgb = 8, map_entries = 256}

The values of red_mask and blue_mask differ and are exchanged.

@paulmenzel
Copy link
Contributor Author

By the way, here are all the visuals found by rdesktop with XGetVisualInfo(g_display, VisualClassMask | VisualScreenMask, &template, &visuals_count);.

UI(debug):    0: visual 0x21 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    1: visual 0xe8 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    2: visual 0xe9 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    3: visual 0xea class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    4: visual 0xeb class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    5: visual 0xec class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    6: visual 0xed class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    7: visual 0xee class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):    8: visual 0xef class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):    9: visual 0xf0 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   10: visual 0xf1 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   11: visual 0xf2 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   12: visual 0xf3 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   13: visual 0xf4 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   14: visual 0xf5 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   15: visual 0xf6 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   16: visual 0xf7 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   17: visual 0xf8 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   18: visual 0xf9 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   19: visual 0xfa class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   20: visual 0xfb class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   21: visual 0xfc class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   22: visual 0xfd class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   23: visual 0xfe class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   24: visual 0xff class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   25: visual 0x100 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   26: visual 0x101 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   27: visual 0x102 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   28: visual 0x103 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   29: visual 0x104 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   30: visual 0x105 class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 24
UI(debug):   31: visual 0x106 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   32: visual 0x107 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   33: visual 0x108 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   34: visual 0x109 class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   35: visual 0x10a class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   36: visual 0x10b class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   37: visual 0x10c class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   38: visual 0x10d class 4 (TrueColor) red      255 green    65280, blue 16711680 depth 24
UI(debug):   39: visual 0x7f class 4 (TrueColor) red 16711680 green    65280, blue      255 depth 32

@uglym8
Copy link
Member

uglym8 commented Jan 10, 2018

I could not reproduce this issue on 17.10 (libvirt) with the requested libdrm version.
Checked that I used Xorg and not Wayland.

Wasted several hours to find the good image on vagrant hub which does not hang after mutating it to libvirt provider. It's strange but most images are for VirtualBox nowadays:(

@paulmenzel
Copy link
Contributor Author

@uglym8, @derfian, just to be sure, where you able to reproduce the “color depth downgrade message” though?

@derfian
Copy link
Member

derfian commented Jan 17, 2018

@uglym8, @derfian, just to be sure, where you able to reproduce the “color depth downgrade message” though?

I think I tested by specifying -a 16 on the command line, thinking it would be the same as if rdesktop negotiated 16-bit colors with the server. I have seen the message in the past without the inverted colors, though.

@paulmenzel
Copy link
Contributor Author

Connecting to a Windows 10 machine (which in contrast supports 32 bit color depth – no idea why, I am not the administrator) and passing -a 16, the colors are displayed correctly. I’ll need to get more debug information.

@uglym8
Copy link
Member

uglym8 commented Jan 17, 2018

I tested with and without passing -a 16.
It worked both ways.

But as I said earlier, once or twice I saw the same picture distortion (not while testing with Ubuntu 17.10 with libdrm2 2.4.83 though).

I can't recall whether I saw the requested message (i.e. “color depth downgrade message” ).
I'm almost 100% positive that I saw it, but can't swear:).

Still got Ubuntu VM lying around.
Feel free to ask me to test something in a case you need it.

@imc0
Copy link

imc0 commented Jan 22, 2018

Oh good, I'm not going mad... I have this bug with "rdesktop -a 16" when connecting to (a) Windows Server 2008, (b) xrdp running on Fedora. Both servers support 24 bits but I happen to have "-a 16" in a script for historical reasons. This started happening at some (indeterminate) time in the recent past, whereas the rdesktop binary hasn't changed for ages.

What seems to matter is the X11 display it's being run on. If I ssh to an old Fedora 22 machine and run rdesktop -a 16 there on my display, the colours are wrong. If I start a VNC server on my own desktop, connect to it, and run rdesktop -a 16 inside the VNC session, the colours are correct.

In fact if I reverse the pixel format of the VNC server, it's still correct. So for the default (RGB888) if I print *g_visual once the window is drawn:
red_mask = 16711680, green_mask = 65280, blue_mask = 255
and for "vncserver -pixelformat BGR888" if I do the same:
red_mask = 255, green_mask = 65280, blue_mask = 16711680
(visualid = 33 in both cases).

@Hithlum
Copy link

Hithlum commented Feb 14, 2018

I too am experiencing this issue. One thing I have notices that I have not seen anyone else mention, though, is the behavior when I specify 32 color depth. I get the exact same color issue as others when using -a 16 and no color issue if I don't specify the color depth or specify 24. On 32, after the login screen, some elements have the correct color and some have the red and blue values swapped. Additionally, if you move a window around, the colors of the region that was under the window is correct as it redraws them. I'm guessing it uses different methods to display different portions of the screen when using 32bit color depth in order to save bandwidth. I'm not sure if this helps in identifying why it's different when specifying the color depth versus not.
image

@derfian
Copy link
Member

derfian commented Feb 15, 2018

@Hithlum Interesting, thanks for the additional info. It would suggest that a certain drawing operation could be (partially) guilty for these error. I can't figure out an easy way to figure out which one though. We should have debug logs for most drawing operations, but looking for info in those logs is getting into needle-in-a-haystack territory.

@Fighter34RUS
Copy link

Fighter34RUS commented Mar 19, 2018

Hi, I'm also got this bug.
Tell me if additional information needed
Command is

rdesktop -z -P -a 15 -f -k en-us -u user (IP)
root@user-IRU-316:/home/user# rdesktop
rdesktop: A Remote Desktop Protocol client.
Version 1.8.3. Copyright (C) 1999-2011 Matthew Chapman et al.
root@user-IRU-316:/home/user# uname -a
Linux user-IRU-316 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:22:43 UTC 2018 i686 i686 i686 GNU/Linux
root@user-IRU-316:/home/user# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.4 LTS
Release:	16.04
Codename:	xenial
root@user-IRU-316:/home/user# dmesg | grep VGA
[    1.608094] fb0: EFI VGA frame buffer device
[    2.288432] fb: switching to inteldrmfb from EFI VGA
[    2.288685] [drm] Replacing VGA console driver
root@user-IRU-316:/home/user# dmesg | grep drm
[    2.164638] [drm] Initialized drm 1.1.0 20060810
[    2.288418] [drm] Memory usable by graphics device = 2048M
[    2.288432] fb: switching to inteldrmfb from EFI VGA
[    2.288685] [drm] Replacing VGA console driver
[    2.288871] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    2.288874] [drm] Driver supports precise vblank timestamp query.
[    3.086066] [drm] failed to retrieve link info, disabling eDP
[    3.202004] [drm] GMBUS [i915 gmbus dpb] timed out, falling back to bit banging on pin 5
[    3.263620] [drm] Initialized i915 1.6.0 20151010 for 0000:00:02.0 on minor 0
[    3.327079] fbcon: inteldrmfb (fb0) is primary device
[    3.327235] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

@Fighter34RUS
Copy link

Reinstalled OS, didn't install updates via GUI updater, only 'apt upgrade', and problem dissapears. Looks like this is not rdesktop problem, but some other package. Can try to install updates from GUI updater one-by-one, to look for bug, if needed

@derfian
Copy link
Member

derfian commented Mar 21, 2018

@Fighter34RUS Thanks! Did I understand you correctly that upgrading via apt or via the GUI produces different results? Do you know if the GUI updater adds the LTS Enablement Stack to your Ubuntu install? I remember this upgraded both the kernel and the X11 infrastructure to more recent versions. This could explain any differences in your case.

@Fighter34RUS
Copy link

Hi. Yep, after apt upgrade there are about 80 packages, which GUI updater asks to install.
Some additional info - I'm using Lubuntu. After I reinstall system i got 16.04.3 version, after apt upgrade - 16.04.4 and rdesktop 1.8.3 but didn't got bug.
After installing all updates via GUI - got it.
Today or tommorow i will test if bug will be "from the box" if I install fresh 16.04.4, and will try to locate update, which causes bug.
About LTS Enablement Stack - didn't know. How can I found it?

@derfian
Copy link
Member

derfian commented Mar 23, 2018

About LTS Enablement Stack - didn't know. How can I found it?

Check for the presence of the linux-generic-hwe-16.04 and xserver-xorg-hwe-16.04 packages, or simply if you're running a 4.4.0 or a more recent kernel version.

@Fighter34RUS
Copy link

Fighter34RUS commented Mar 26, 2018

Hi, it's me again)
Step-by-step I found packages which causes bug.

user@user-ThinkCentre-M53-TEST:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:        16.04
Codename:       xenial

Looks like LTS Enablement Stack is already installed:

user@user-ThinkCentre-M53-TEST:~$ uname -a
Linux user-ThinkCentre-M53-TEST 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

There are 3 packages, cross-referenced, as I think:

/var/log/apt/term.log
(Чтение базы данных … 85%
(Чтение базы данных … 90%
(Чтение базы данных … 95%
(Чтение базы данных … 100%
(Чтение базы данных … на данный момент установлено 168539 файлов и каталогов.)
Подготовка к распаковке …/libwayland-egl1-mesa_17.2.8-0ubuntu0~16.04.1_amd64.deb
 …
Распаковывается libwayland-egl1-mesa:amd64 (17.2.8-0ubuntu0~16.04.1) на замену (
11.2.0-1ubuntu2) …
Подготовка к распаковке …/libegl1-mesa_17.2.8-0ubuntu0~16.04.1_amd64.deb …
Распаковывается libegl1-mesa:amd64 (17.2.8-0ubuntu0~16.04.1) на замену (11.2.0-1
ubuntu2) …
Подготовка к распаковке …/libgl1-mesa-dri_17.2.8-0ubuntu0~16.04.1_amd64.deb …
Распаковывается libgl1-mesa-dri:amd64 (17.2.8-0ubuntu0~16.04.1) на замену (11.2.
0-1ubuntu2) …
Обрабатываются триггеры для libc-bin (2.23-0ubuntu10) …
Настраивается пакет libgl1-mesa-dri:amd64 (17.2.8-0ubuntu0~16.04.1) …
Устанавливается новая версия файла настройки /etc/drirc …
Настраивается пакет libegl1-mesa:amd64 (17.2.8-0ubuntu0~16.04.1) …
Настраивается пакет libwayland-egl1-mesa:amd64 (17.2.8-0ubuntu0~16.04.1) …
Обрабатываются триггеры для libc-bin (2.23-0ubuntu10) …
Log ended: 2018-03-26  21:43:26

Before installing these - rdesktop works fine, after - got color inversion

@Fighter34RUS
Copy link

Is this was useful? Maybe need some additional info?

@rolandbreedveld
Copy link

Same issue on Ubuntu 17.10 with Compiz using -a16 , -a32 works fine .
Problem is not there when login with gnome.

@Fighter34RUS
Copy link

I had this problem under LXDE (openbox, as long as I remember)

@pjwelsh
Copy link

pjwelsh commented May 21, 2018

I've just seen this issue selectively while using the -a16 after a CentOS 7.5 update from CentOS 7.4. I know wayland is a part of this upgate. However, I'm not seeing every type of system affected. Older Optiplex 980's (with Radeon HD 5000/6000/7350/8350 Series) and Precision T1700 were not affected. All of the Optiplex 7010's (with i5-3470S and on-chip GPU) and 9020's (with i5-4570S on on-chip GPU) are affected. All of the Optiplex's are base installed the same PXE way.
With the systems that do not show properly (using the "-a16" set), changing to either no "-a" option or "-a24" produces expected results. There is no difference in results if selecting either Gnome or Gnome Classic as the window manager, either.

@therneau
Copy link

More data: I had the same issue appear a few weeks ago after doing a standard update of Ubuntu 16.04.4 LTS (the machine had been nagging me for months to do one). No change in my rdesktop call or machine setup. This is running on an HP EliteDesk 800 G2, with a second HP of the same vintage right next to it that has windows. (I have to use Windows for the corporate trip and timecard systems). I'm happy to provide further information if you'll tell me what to provide.
Terry Therneau therneau@mayo.edu

@therneau
Copy link

Further notes: I run xubuntu. Monitor is an older Dell MX.

@bogbert
Copy link

bogbert commented Feb 27, 2019

I can't reproduce this problem anymore.
I suppose the library at fault has been fixed, and the fix deployed on my machine during a package update.
Maybe it's time to close this issue ?

@pjwelsh
Copy link

pjwelsh commented Feb 27, 2019 via email

@CendioOssman
Copy link
Member

Thank you for your update. We'll close this and hopefully there will be no more occurrences. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests