Windows 8.1 DPI Scaling Causes ‘older’ Applications to be scaled/blurred

Since Windows 8.1 reached GA today, I loaded it up first thing this morning on my Ativ Book 7 to enjoy the much anticipated tweaks that make this Ultrabook even more ultra! However, once I got the update installed, I opened a few applications, including Chrome, and a XenDesktop 7 ICA session using Receiver for Windows and immediately noticed that these apps were blurrier than the desktop or Modern Apps.

As you can see in this screen clip, there’s a slight blur on the seamless ICA desktop (110%ish scaled), as is the CDViewer taskbar icon:

Image

I quickly found that Microsoft decided to enable dynamic display scaling on non DPI Aware programs for high-DPI displays. If you’re interested (like I was) to know more about why Microsoft made this decision in 8.1, you should check out this blog which goes into detail on the topic.

The short of it is that the ‘..additional scaling capability provides two distinct advantages for high-DPI displays on Windows 8.1:

  1. UI can scale larger which makes readability better and touch/mouse interactions easier.
  2. 200% scaling enables pixel-doubling for up-scaling which provides a clear and crisp appearance for images, graphics, and text.

Since the Ativ 7 crams a 1080p display into a 13.3″ panel, it falls under the category of a high DPI display at about 165 PPI. To change this behavior for a particular application, you have to adjust the executable’s compatibility settings to ‘Disable display scaling on high DPI settings’:

Disable Display scaling on large DPI displays

Disable display scaling on high DPI settings

By doing this for CDViewer.exe, for example, I was able to get the ‘Desktop Viewer’ to launch in native DPI, which is blur free (and displayed in normal DPI). If I need to get a more readable/usable DPI, I can always adjust the same settings on the virtual desktop side:

sharp

This setting can be also be disabled via the registry by setting an AppCompatFlags\Layers Reg_SZ value named as the executable in question, with the string set to HIGHDPIAWARE (in HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers):

UseDPIScaling

You can also disable DPI scaling for all applications on a particular display by checking the ‘Let me choose one scaling level for all my displays’ in the ‘Display’ control panel item, and setting the scaling ratio to 100% (Smaller):

The only caveat to this approach is that DPI scaling is also disabled for Explorer, so the taskbar and desktop will be small as well.

Thanks for the thought Microsoft, but please give us an option to do without this feature!

9 comments

  1. bokusama · October 20, 2013
  2. Günter · May 27, 2014

    I have also a question. in our enviorment we want to use DPi Scaling for User. I have installed the hotfix form Microsoft, that didn’t have solved our Problem.
    Win 8.1 und Server 2008 r2 with xenapp 6.5 and reveiver 4.1.
    After every logout form the session the dpi is back to default.

    Could you help us out?

    thanks günter

  3. Martin · August 10, 2015

    Hi,
    Can I solve this issue regarding blurred applications in the Citrix Receiver App in Windows 10 somehow?

    Thank you.

    Kind regards,
    Martin

    • Kenny Baldwin · August 10, 2015

      Sure, it’s actually the exact same process for Windows 10.

  4. Martin · August 10, 2015

    I forgot to mention that I try the Citrix Receiver App from Microsoft Store and I don’t think there is a CDViewer.exe ? I can’t (yet) make it work with the Citrix onlien web plugin as I have been used to. That is why I try the Citrix Receiver App.

    • Kenny Baldwin · August 10, 2015

      Ah, changing this on the ‘modern’ app is the same process of disabling DPI-scaling on the executable, but getting to the executable is much different (and more difficult).

      First, you have to open the ‘modern’ apps directory; a step-by-step guide for which can be found here http://www.wikihow.com/Access-Metro-Style-Apps-Installation-Folder-in-Windows-8

      Then, search for a directory with the word ‘CitrixReceiver’ in it, and look for ‘Receiver.exe’, which is the executable that needs the DPI setting to be disabled.

      I hope this helps!

  5. Martin · August 10, 2015

    Thank you very much. I will give it a try.

  6. Jose Espitia · June 20, 2017

    You can also keep your updated DPI settings by using compatibility mode.
    Running this cmd will allow you to use your existing DPI settings with Citrix and keep the scaling correct.
    reg add “HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers” /v “C:\Program Files (x86)\Citrix\ICA Client\wfica32.exe” /t REG_SZ /d “~ WIN7RTM” /f

    Here is some more info:
    http://joseespitia.com/2017/06/19/fix-citrix-receiver-dpi-issues/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s