Windows – scale (stretch) a Remote Desktop session locally

high-dpiremote desktopwindows 10

How can I view a 1080p RDP session in stretched fullscreen on a 2160p (UHD) display?

I am using high-DPI screens with a UHD native resolution.

I would like to have a full-screen remote desktop session. In Windows 10, the local resolution and DPI settings are applied remotely, which looks great. But this means all scaling happens on the remote end, and as far as RDP is concerned it's transmitting a 2160p image.

Unfortunately, transmitting a 2160p resolution over the network requires a high bandwidth, which means the entire experience is rather laggy. For example, manually forcing 1080p is much smoother. But forcing 1080p does not stretch locally and if I try to switch to 1080p fullscreen I end up with a centered viewport and a large black border:

Screenshot of RDP session

Is there any way I can get it to stretch locally so that only 1080p is transmitted over the network but it looks like 200% DPI locally?

While I would prefer to use the native Windows RDP client, a third-party client is also acceptable if it solves this issue. Support for Remote Desktop Gateway is desired, but can be worked around if necessary.

Best Answer

Thanks to Sam Jones' links, there appears to be three possible solutions:

  • Using the Remote Desktop app (via the Microsoft Store)

    This appears to be the most flexible option.

    While setting up the connection, simply configure the Display Settings to the desired resolution. Additionally, "Change the size of the display" should be set to 100% to disable any remote DPI scaling. When entering full screen, the display is automatically stretched locally.

  • Using the native Remote Desktop Connection client (mstsc)

    Unfortunately, it's not possible to enter full screen mode while zooming with this method. Mostly, this means some keyboard shortcuts will not be captured.

    1. Before connecting, set the resolution (e.g. to 1920x1080) in the Display tab of the connection settings dialog. This is the crucial step for determining the resolution sent over the network.
    2. After connecting, right-click on the title bar and set the Zoom:

      Screenshot of option

  • Using mRemoteNG, a third-party client

    I have not yet figured out how to stretch (zoom) locally. However, if the resolution of the connection is set, there appears to be DPI scaling applied locally resulting in a readable display with minimal data sent over the network.

    For example, I can set 1920x1080, which will be the remote resolution. Then my default 150% DPI scaling is applied locally, resulting in ~2880x1620. Some black borders remain but it's usable.