VMware Horizon Community
Supersigx
Contributor
Contributor

Windows display scale to vmware display scaling

Since upgrading one of our users client version from v3.5 we have noticed an issue when having the Windows Display Scale set to 125% zoom the VM now has a reduced resolution indicative of the resolution of one with said zoom level, so a 1920x1080 host machine screen would provide a ~1600x750 resolution.

This particular user was using 2 screens, one was 1920x1200 the other was 1920x1080, display scaling from VMware was enabled and was proven so by changing the size of a "large window" and seeing the resolution change. the function of 2 screens is a requirement - I have seen the fix for the surface pro was to adjust the RTAV registry keys for srcWCamFrameWidth and height however I cant see a way to set 2 resolutions for 2 screens.

Client version: 4.7, tested with 4.4 also

Agent version 6.0.1

Any ideas would be appreciated.

Tags (1)
17 Replies
grossag
VMware Employee
VMware Employee

If you upgrade your Agent to 7.x, you will get DPI syncing, where the Remote Desktop will end up at 125% DPI and the resolutions will match. That will give a better experience. I can’t recall the exact 7.x version it was introduced in though. Either 7.0 or 7.1 I think.

Reply
0 Kudos
ArnoM
Enthusiast
Enthusiast

Read this article: Using DPI Synchronization

Blog: https://arnomeijroos.com/ Twitter: @ACMeijroos
Supersigx
Contributor
Contributor

Thank you for the response, I would love to upgrade to the latest agent and get all the additional features, that is just not an option available to me right now.

I find it very strange that there were no apparent issues when using the older view client version, I cant even go back to the older version as we would lose the display topology functionality within the later clients.

Reply
0 Kudos
BenFB
Virtuoso
Virtuoso

You can disable display scaling/dpi synchronization on the Horizon Agent using the GPO templates.

Reply
0 Kudos
Supersigx
Contributor
Contributor

Would this require the master images for the pools to be snapshotted at the correct resolution or can the resolution be defined within the GPO template, if the latter how well does this work with multi-monitor users?

Reply
0 Kudos
BenFB
Virtuoso
Virtuoso

The resolution in the parent image does not matter. The Client will define the resolution when connecting based on what the pool allows or it can be manually set by the user.

Reply
0 Kudos
grossag
VMware Employee
VMware Employee

I did some research and found that there is indeed no GPO or registry value that can be set on the Horizon client to disable display scaling. The only way to disable it is by having the user go into the Settings dialog after login and uncheck "Allow display scaling" after selecting either "Applications" or the specific desktop on the left side. Otherwise, display scaling will automatically be disabled if you upgrade your Horizon agent so that DPI synchronization is enabled. But specifically, the DPI synchronization agent GPO will not help you with what you are looking for now.

Reply
0 Kudos
ArnoM
Enthusiast
Enthusiast

That's not true. You can disable DPI synchronization. Please read this article: Using DPI Synchronization

Blog: https://arnomeijroos.com/ Twitter: @ACMeijroos
Reply
0 Kudos
grossag
VMware Employee
VMware Employee

Please understand that there are two different features with respect to DPI: (1) DPI synchronization, which sets the DPI in the Remote Desktop and (2) DPI scaling, which requests a lower resolution and zooms in a bit. I am specifically talking about #2 when I say that it can’t be disabled by GPO, so your notes about how to disable #1 are not the same thing. With the 6.x Agent you can’t even do #1. If #1 were available (if they were on the 7.x Agent), they would not want to disable it because it would immediately resolve their issue. The issue they are running into is a blurry screen because of #2. Does that help clarify?

Reply
0 Kudos
ftempel
Enthusiast
Enthusiast

VMware made the DPI setting on the client device leading and adjusts the remote desktop accordingly. This is great for users that use their own devices with all kinds of displays and DPI settings and such. But that's not really the case on corporate owned, standardized and locked down devices.

I'm sure this feature looked awesome on paper. And the clever trick to play with resolutions and window fitting to make it seem Dynamic is something I'm sure some developer is still proud of (but wreaks havoc when that new calculated resolution grows out of the configured bounds of the pool...oops). Too bad VMware will probably get a lot of flak from enterprise customers for this as they start to roll out newer agents and clients to especially thin clients with a static configuration which are not configured to retain named user profiles, because that's where the little checkbox is kept.

The biggest problem is that VMware neglected to provide administrators with the tools to easily nuke the Display Scaling on the client side. Sure, they provide the option to lock the resolution of the guest  ("Locked Guest Size"), but...geez, where do I begin to explain how stupid that is. At least for the agent they gave us the option to disable DPI syncronization, but that only means that Display Scaling is leading. I've spent two days getting worked up on how stupid this is and cursing the VMware developer who thought this was a great idea.

Then I came up with a solution.

The "Allow Display Scaling" is a per desktop setting which is kept in an XML file in the user's profile (%Appdata%\VMware\Vmware Horizon Client\prefs.txt). What we do is have a scheduled task on one of our management servers to generate this file based on available desktop pools, and then distribute it. Distribution is done in a GPO to the Default profile on the (Windows) thin clients as they boot. When the autologon continues, the device auto logins with a standard user, which inherits its profile from the default user, and presto...all desktop pools have the Display Scaling disabled by default when a user connects to his desktop pool.

VMware really needs to make this a configurable option in the Horizon client. Either by GPO or commandline parameter.

Reply
0 Kudos
ftempel
Enthusiast
Enthusiast

Just for giggles I made a SR for this thing. In short my question was: "How can this "DPI Scaling" feature fully disabled while still allowing custom resolutions and auto scaling?"

The answer: "Other than the above what you are requesting is not possible", with "the above" being to disable DPI Synchronization on the agent (which already is).

Please, if you run into this problem, utilize your support contract and bug VMware support with questions about DPI scaling and how to disable it.

Reply
0 Kudos
grossag
VMware Employee
VMware Employee

I'm the one who wrote the display scaling feature and I agree on both points: (1) it is not nearly as useful as DPI syncing and (2) I definitely should have put a kill switch GPO on the client. This feature was introduced before we knew that DPI syncing was possible and was intended to be a stop-gap solution to avoid windows from being tiny on 4K monitors if you can't set the DPI. It still retains some usefulness given that our DPI syncing only occurs on initial login so there are still use cases where you roam from one client to another, don't want to log out of your session, but don't want your session to look tiny.

I looked around and it appears that your SR is getting prioritized internally so that is good news. We are too early in our release cycle to have a committed release date, but the feature is being investigated by the Windows Horizon client team.

Reply
0 Kudos
ELayman
Contributor
Contributor

Has there been any update on the ability to disable Display Scaling using a GPO yet?  I wanted to ask before I open an SR for this...

ap_idb
Enthusiast
Enthusiast

Also looking for followup? This Display scaling option is frustrating for some users    

User2021
Contributor
Contributor

Facing same issue. is there a solution plz?

Tags (1)
Reply
0 Kudos
User2021
Contributor
Contributor

More details: 

I use Surface book laptop and a samsung monitor. Display scaling on my Surface book is 200 and monitor is 175.  The font and windows look very big on the monitor but I cant adjust the scaling separately. 

I tried changing the display settings on VMWARE(version 5.4.4) but that doesnt work either. I selected 'All Monitors' option and display scaling as 100. This time the font and windows on my laptop are very small. Is there a way I can have display scaling changed for each of the displays individually?

 

Thanks. 

Reply
0 Kudos
Mickeybyte
Hot Shot
Hot Shot

@User2021 

The latest Horizon Client (version 2012) supports per monitor DPI settings. By default it takes the DPI of each monitor and uses that on the VDI session. Older Horizon clients take the DPI settings from the primary monitor and uses that setting on all monitors used for the VDI session.

Haven't tested it yet myself, but take a look at the latest Horizon client to see if that solves your problem.

Regards,
Mickeybyte

 


Regards,
Mickeybyte (ITPro blog)

If you found this comment useful or an answer to your question, please mark as 'Solved' and/or click the 'Kudos' button, please ask follow-up questions if you have any.
Reply
0 Kudos