How to set systemwide "XP style DPI scaling" in Windows 8.1?

25,692

Solution 1

Short answer (AFAIK): You can't anymore, as they reworked the DPI system in 8.1 to better adjust to newer HD displays and more complex setups (perhaps at the expense of running old, non-DPI-aware programs).

Check this out, from the "Windows Extreme Blog" (blogs.microsoft.com, Jul 15, 2013): Windows 8.1 DPI Scaling Enhancements

Blurb:

With the recent proliferation of high-DPI tablets, notebooks, and external displays these high-DPI and DPI scaling issues became an important consideration for Windows 8.1.

Windows 8.1 DPI scaling improvements are primarily focused on:

  • Optimizing the usability and readability of high-DPI displays
  • Providing a uniform experience [on] multi-display systems
  • Empowering developers to optimize app-specific scaling based on display DPI

Solution 2

Long story short, you can set this globally by selecting "Let me choose one scaling level for all my displays" and signing out then back in.

This is how I found out: I ran into the same problem.

First I started fixing individually with compatibility settings but it soon becomes a headache because of so many different programs with this issue.

So reading some pointers you learn that this option is meant so that each program can be adapted to different displays working in parallel so that it is readable in each by scaling it up as a bitmap which renders it larger but ugly (blurry) in many cases - granted, some might want it on a single display but then they can use some optimized size value that will still render well.

So now Windows applies this to any monitor including the default even if it is the only one.

I figured that maybe, if you told it to just use the same scaling on all displays it would no longer need the overhead of the per-display bitmap routine and disable it altogether -or at least match the optimized values that had always been available and good.

The scaling functionality would simply match the manually selected values (Smaller - 100%, Medium - 125%, Larger - 150%, custom defined, etc.) without the per-display (bitmap) method which had always rendered nicely in the past.

Seems I guessed right since now all programs render quite beautifully and even larger which I was not expecting since the blurry option was actually also yielding smaller text in my case (I did change some text sizes to make touch display usage easier, maybe it was that.)

Since this is all I needed, I leave it to others to find out and clarify the exact mechanism of how this worked to improve what are simply conjectures of mine.

Share:
25,692

Related videos on Youtube

Michael Geary
Author by

Michael Geary

Updated on September 18, 2022

Comments

  • Michael Geary
    Michael Geary over 1 year

    I run my ThinkPad with a system DPI setting of 140%. In Windows 7 and 8, I enabled the "Use Windows XP style DPI scaling" checkbox in the Custom DPI Setting dialog. When this setting is off, non-DPI-aware applications get DPI virtualization via bitmap stretching, which results in large but fuzzy text. Turning on the checkbox disables this bitmap stretching, so non-DPI-aware apps get smaller text but without the fuzzy stretching. I find most apps to be more readable with the smaller crisper text, so I enable XP style scaling (i.e. disable DPI virtualization).

    Windows 8.1 RTM has removed this option completely. After upgrading, all of my non-DPI-aware apps are running with ugly bitmap stretching. I'm able to fix this by going into the Properties for each app and setting the "Disable diplay scaling on high DPI settings" box in the Compatibility tab, but that is a bit of a pain.

    Is there any way to restore the systemwide XP-style DPI scaling in Windows 8.1?

    • Admin
      Admin over 10 years
      Try to set UseDPIScaling in HKLM\SOFTWARE\Microsoft\Windows\DWM to 0. I have no idea whether this will work.
    • Admin
      Admin over 10 years
      I can reproduce the problem now. DPI 120 gives me nice XP-style scaling, DPI 144 a blurry mess irregardless of the scaling setting.
    • Admin
      Admin over 10 years
      Further experimentation shows that i get the duplo interface only for DPI up to 120, and DPI 121 gives me a blurry mess. You should file a bug. Also, consider that DPI settings other than 96 and 120 were never supported by MSFT…
  • Michael Geary
    Michael Geary over 10 years
    Thanks, I had a feeling this would be the case. It is a bit odd: I could in theory go to the Properties for every app I ever run and disable display scaling for each of them. So why not allow the global setting any more since it's essentially the same thing? Ah well, I guess I have some property-opening-checkbox-clicking to do! :-)
  • Michael Geary
    Michael Geary over 10 years
    "...why not allow the global setting any more..." I wasn't suggesting you should have an answer to that! Was just grumbling about it...
  • Ƭᴇcʜιᴇ007
    Ƭᴇcʜιᴇ007 over 10 years
    I'm glad you wouldn't expect me to know why MS does anything. ;) I just figured I'd present some of their reasoning as to why it's gone, and may not be possible to bring back. That doesn't mean someone else won't (eventually) come along with a solution to set all those boxes at once - or alike. It happens. ;)
  • Michael Geary
    Michael Geary over 10 years
    Hmm... I've actually had the "Let me choose one one scaling level for all my displays" setting turned on for some time and it doesn't remove the blurry scaling on my system. What percent do you have the scaling set to? Mine is 140%. I wonder what other difference between our systems might be affecting this?
  • Michael Geary
    Michael Geary over 10 years
    If the downvoter happens to read this, it would be helpful if you would share the reason for the downvote. At the moment, this appears to be the correct answer. Another answer suggests turning on the "one scaling level for all my displays" option, but that doesn't work for me. So whoever downvoted this answer, do you have a working solution?
  • bokusama
    bokusama over 10 years
    OK. So seems that default values indeed produce optimized results. I was at 125% (Medium) with all well and tried 140% and programs started looking bad again despite one scaling for all displays. So seems it is about both telling it not to modify it on any display and set it to a "good" value. Seems they'll make you choose unless you want to set individually :-/