QUESTION :
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:
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.
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.
-
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 1920×1080, which will be the remote resolution. Then my default 150% DPI scaling is applied locally, resulting in ~2880×1620. Some black borders remain but it’s usable.
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
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 )
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