Since 44.1, sometimes frame updates are only occasionally pushed to the client (both X11 and Wayland), breaking GNOME Remote Desktop
Problem statement
When connecting over RDP onto my desktop workstation running GNOME Shell 44.1 on a fully up-to-date Fedora 38:
- If connecting to an unlocked screen, the client gets a black screen, until the first frame update (see below)
- Frame updates only happen sometimes when clicking on some GNOME Shell UI elements, such as the notifications tray button, or the system menu button, but the frame on the client does not get updated when dismissing those menus
- Repeatedly clicking those elements on and off may eventually trigger a frame update to the client
- Input events from the client get sent to the server fine
This used to work fine in previous versions. I did not change anything in the Remmina client configuration.
I really don't know what to look for here, the journalctl logs (below) don't seem to say anything special, but I tried troubleshooting and demonstrating the symptoms as best as I can in a short video. Please have a look at this video, and the problem will be clear: https://youtu.be/ETaGMSvN-ok
Software, drivers, hardware
Both the server and the client are running GNOME Shell 44.1 on a fully up-to-date Fedora 38.
I'm using Remmina 1.4.30 as the connecting client.
The host/server uses an AMD Radeon "Pitcairn" R7/R9 270 GPU. It is not set up for VA-API, so I don't think I have HW-accelerated H.264 encoding/decoding there. I am running the open source AMD graphics driver that comes with Fedora 38. I did full reboots (and poweroffs) between tries, so it's presumably not the GPU simply being in a borked state.
I tested both using Xorg and Wayland on the server, and in both display servers I also tested both the vanilla version vs the patched triple-buffering version (from this COPR), just to be sure if it would benefit from triple-buffering somehow. The problems remain the same in all cases.
Logs
Upon connecting:
Apr 30 20:47:50 workstation gnome-remote-desktop-daemon[12499]: [20:47:50:604] [12499:14038] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_CONTINUE_NEEDED [0x00090312]
Apr 30 20:47:50 workstation gnome-remote-desktop-daemon[12499]: [20:47:50:705] [12499:14038] [WARN][com.winpr.negotiate] - AcceptSecurityContext status SEC_I_COMPLETE_NEEDED [0x00090313]
Apr 30 20:47:52 workstation gnome-remote-de[12499]: [RDP.CLIPRDR] Relieving CLIPRDR filename restriction
Apr 30 20:47:52 workstation gnome-remote-de[12499]: [RDP.CLIPRDR] Client capabilities: long format names
Apr 30 20:47:52 workstation gnome-remote-de[12499]: [RDP.RDPGFX] CapsAdvertise: Accepting capability set with version RDPGFX_CAPVERSION_107, Client cap flags: H264 (AVC444): false, H264 (AVC420): false
Apr 30 20:47:52 workstation gnome-remote-de[12499]: [RDP.AUDIO_PLAYBACK] Client Formats: [AAC: false, PCM: true]
Upon disconnecting:
Apr 30 20:49:25 workstation gnome-remote-desktop-daemon[12499]: [20:49:25:452] [12499:14038] [ERROR][com.freerdp.core.transport] - BIO_read returned a system error 0: Success
Apr 30 20:49:25 workstation gnome-remote-desktop-daemon[12499]: [20:49:25:452] [12499:14038] [ERROR][com.freerdp.core] - transport_read_layer:freerdp_set_last_error_ex ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x0002000D]
Apr 30 20:49:25 workstation gnome-remote-de[12499]: Unable to check file descriptor, closing connection
Apr 30 20:49:25 workstation systemd[1]: run-user-1000-gnome\x2dremote\x2ddesktop-cliprdr\x2d0DBvj4.mount: Deactivated successfully.