microsoft / microsoft-ui-xaml

WinUI: a modern UI framework with a rich set of controls and styles to build dynamic and high-performing Windows applications.
MIT License
6.37k stars 682 forks source link

WinUI3 apps using 1.6 SDK stop rendering in remote desktop #10009

Open garrettpauls opened 2 months ago

garrettpauls commented 2 months ago

Describe the bug

We have a WinUI3 application that we recently updated to use WindowsAppSDK version 1.6.240829007. Prior to this update it ran over remote desktop fine, however after this update it will visually freeze if you switch away from the remote desktop window and back, however it still accepts mouse input during this time. Switching away from remote desktop and back again will restore the app's rendering functionality, and it will update as though all clicks had been interpreted and it just wasn't rendering for a while.

I've attached a small application which reproduces the behavior, as well as a video to demonstrate it. We've had multiple people run into this issue with the app after the update to 1.6.

WinUIRDPBug.zip

This affects our unpackaged application, and the demo application is also unpackaged. I do not know if this bug exists for packaged applications, however our application must remain unpackaged, so I didn't attempt to test the packaged app behavior.

Steps to reproduce the bug

  1. Compile the attached demo application as Release x64.
  2. Copy the compiled app to a separate computer via a remote desktop connection. The RDP settings can be anything, I've tried a variety of performance settings from the default lowest (Modem) to the default highest (LAN) and they all produce the behavior.
  3. Run the compiled app in the remote desktop session and click a few buttons to verify it is working (clicking the buttons and nav view items should add messages to the log text box).
  4. Switch focus on the main (non-remote) computer to an application other than the remote desktop connection, and interact with the other application.
  5. Switch focus back to the remote desktop connection and click on the demo app. Attempt to click on some buttons and menu items, and it will not appear to respond to the clicks. The first click may apply the hover or pressed style to whatever you clicked, and after that nothing will update.
  6. Switch away from the remote desktop session and back again, then click on the application. It will update as though it had been processing the mouse clicks and just wasn't rendering until now. The application will now continue to behave as expected (until you switch away from remote desktop again).

Expected behavior

At step 5 of the reproduction, the application should behave normally and continue rendering. Clicking buttons and menu items should show the usual WinUI animations, and the text box log should update as things are clicked.

Screenshots

This video shows the problem in action: WinUI3RemoteDesktopBug

WinUI3RemoteDesktopBug

NuGet package version

WinUI 3 - Windows App SDK 1.6.0: 1.6.240829007

Windows version

No response

Additional context

The host computer is Windows 11 (23H2) build 22631.4169, the remote computer is Windows Server 2019 Standard (1809) build 17763.6293.

Remote desktop connection information is:

[Client details]
Client version: 10.0.22621.4036 (x64)
Local OS: Windows 10 Pro x64 (10.0, Build 22631)

[Network details]
Transport protocol: TCP
Round-trip time: 170 ms
Available bandwidth: 9.98 Mbps
Frame rate: 0 FPS

[Remote computer details]
Remote session type: Remote desktop
Gateway name: Not in use
Gateway logon method: Not in use
Remote computer: [redacted]

I was also able to reproduce this with the host computer being Windows 11 (23H2) build 22631.4169 and the remote computer being Windows 11 (23H2) build 22631.4169. Remote desktop connection information for that session is:

[Client details]
Client version: 10.0.22621.4036 (x64)
Local OS: Windows 10 Pro x64 (10.0, Build 22631)

[Network details]
Transport protocol: TCP
Round-trip time: 170 ms
Available bandwidth: 31.20 Mbps
Frame rate: 2 FPS

[Remote computer details]
Remote session type: Remote desktop
Gateway name: Not in use
Gateway logon method: Not in use
Remote computer: [redacted]
Balkoth commented 1 month ago

Seeing this too, as we have apps in production that can only be executed from a remote desktop session this is a critical bug for us.

AdriaanLarcai commented 1 month ago

We are experiencing this as well, but it's more like the app stops responding to mouse input. Using navigation keys on the keyboard (tab and arrow keys), we are still able to navigate through our app. Pressing a key such as spacebar sometimes returns mouse input. This must be a regression, since this was an issue in a previous version of the Windows App SDK.

zalox commented 1 month ago

I'm experiencing the same issue. Initially I thought it was the Remote Desktop Manager I was using. Downstream report: https://forum.devolutions.net/topics/43042/freezing-issues-with-rdm-20243100

krevio commented 1 month ago

Have a similar behavior even without RDP environment.

Simply hold down the Tab key for a while, at some point the window no longer responds to pointer inputs. But it seems to be random when this happens.

After pressing ALT or Shift, however, all previous clicks are processed.

https://github.com/user-attachments/assets/e11552e6-e1c4-4496-a298-91ab7fb71d6a

naurisivanans commented 1 week ago

Is there any commitment, or at least acknowledgment, that this will be worked on? I wonder why this isn't treated with a bit more urgency, as it essentially makes version 1.6 unusable in production for enterprises.

AdriaanLarcai commented 1 week ago

This is a serious issue guys, and it's fully and easily reproduceable with any WinUI 3 app that targets any version of Windows App SDK 1.6. This creates serious confusion for users that need to work on VMs or via Remote Desktop when the app appears to have frozen after clicking out of and back into a VM / Remote session.