19

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.

2
  • Support for Remote Desktop Gateway is almost required....Do you mean "also"? Nov 14, 2017 at 12:29
  • @TwistyImpersonator I was going for "I kinda need it but I can work around it if I really have to". Edited to make that clearer.
    – Bob
    Nov 14, 2017 at 14:04

4 Answers 4

18

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.

3

According to official documentation, you could edit .rdp file and add parameter desktopscalefactor:i:value where value is scale factor (100, 125, 150, 175, 200, 250, 300, 400, 500), 100 is default.

Docs: https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/rdp-files

1
  • 2
    This seems not working on Windows 10.
    – Will Huang
    Oct 7, 2021 at 13:17
1

The answer to some of your puzzle is here: https://superuser.com/a/1031862/15466

When you rdp in, you can set the rdp client to make the session fit your client display area. However, for auto zoom to work, mremote may be required (as mentioned in https://superuser.com/a/1031862/15466 )

2
  • Thanks for the references! Oof, those questions look very close to dupes, not entirely sure how I missed those... I'll leave this open since the core question (forcing a lower remote res) is different but it is close. Since your answer there is more complete and this one is mostly a link, I've chucked a bounty on that other question - I'll award it to you in ~24 hours when it lets me.
    – Bob
    Jan 28, 2018 at 2:42
  • I've self-answered for now with something a bit more complete but if you want to copy the contents into your answer I'll delete mine and accept yours.
    – Bob
    Jan 28, 2018 at 2:44
1

There is another solution - edit .rdp file with notepad. Try changing "screen mode id:i" parameter to 2. Additionally you can try to experiment with "winposstr" parameter. Look in paragraph "Calculating the Values for winposstr".

Also you can try to setup rdp-connection from scratch. It can help, for example, if you have created your rdp-connection when you had FullHD monitor and then bought 4K monitor.

Finally there is open-sourced software that has scaling feature - PRemoteM https://github.com/VShawn/PRemoteM

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.