How DPI Scaling works in Windows 8.1
Most Windows users probably do not bother with their operating system's DPI scaling settings at all. The setting determines how items on the screen are displayed which is independent from the screen resolution the monitor is running on. Some users like to increase the DPI scaling to improve the readability of elements on the screen.
The main purpose though is to make sure that items on the screen look fine regardless of resolution and size of monitor. A basic example is that the items on the screen of a 24" Full HD display may look different than items on a screen of a 46" Full HD TV if the same DPI setting is used. Basically, the items will not appear at the same scale when you compare them, with items on the 46" considerably smaller than those on the 24".
That's where DPI comes into play. To improve this, you increase the DPI setting to a larger value to improve the readability and accessibility of items and information on it.
With Windows 8, there is only one DPI setting for all screens you connect your computer to. This is especially a problem for Microsoft's Surface Pro as it ships with a screen resolution of 1920x1080 and a DPI setting of 150% instead of the usual 100%. This works out quite well for the native screen of the Surface Pro, but quickly becomes an issue when you connect it to a larger monitor, for instance at work or at home.
The reason for this is that other screens may not look right when you run them on 150%, and while you can go into the display settings of the Surface Pro to lower it to the - usual - 100%, you would have to modify the setting again once you start to use the Surface's screen again. And that is not even taking into account situations where you may want to use both screens at the same time.
One of the new features of Windows 8.1 is automatic DPI scaling (Microsoft calls it per-display DPI scaling). What is meant by that is that Windows 8.1 will automatically select a DPI scaling for each connected monitor. So, the Surface Pro would be run at 150% while the larger Full HD monitor on your desktop would run on 100% (or whatever the appropriate value is) without the two values interfering with each other in any way.
While automatic should work fine for most users, it is possible to override that in case you prefer to run a single DPI for all connected screens.
DPI Scaling settings in Windows 8.1
The easiest way to open the DPI scaling options is to right-click on the desktop of the operating system (on the screen you want to modify the values for) and select Personalize from the context menu.
Here you then need to click on Display under See also in the lower left corner of the screen.
- The "Let me choose one scaling level for all my displays" determines whether the automatic DPI-scaling of Windows 8.1 is enabled or not. If the setting is unchecked, Windows will automatically select scaling values for each display the PC is connected to.
- You can use the slider, supporting the three states smaller, large and larger to adjust that scaling based on your personal preferences.
- If you check the preference, you disable automatic mode to select a custom DPI setting for all displays instead.
- The display setting can go up to 500% when you click on custom sizing options which is another improvement over Windows 8.
Microsoft employee Gavin Gear explains why this is the case:
Scaling turns out to be a lot harder to change on the fly than resolution.  We’ve had resolution change in the ecosystem for about 20 years.  Apps that need to work with different resolutions are expected to respond to WM_DISPLAYCHANGE and a host of other events to resize themselves.  There’s no comparable event for a scaling change (WM_DPICHANGED is new in Windows 8.1), so there are only a few apps that handle this event today.  For any app that doesn’t handle this event, Windows has to do the scaling, and that means performing a bitmap scaling operation on the app’s rendered output.
So, Windows 8.1 supports that feature, but the majority of apps and programs do not.
Advertisement
The issue I’m seeing on my Zenbook Infinity is that the scaling setting changes (with no apparent rhyme or reason) when the machine comes out of sleep mode. Sometimes it’s on the 125% level, and for some reason this morning it jumped to 200%. I’m not using external or additional monitors at the moment and I’ve wanted it fixed at 150%.
Extremely annoying.
The wording “per-display” is misleading, at least in my experience with the Surface Pro 2. I’m not sure how to get an external monitor to register at 100% scaling while maintaining the Surface at 150%. Anyway to make that happen yet…or is this still waiting in the MS development wing?
Oops! Forgot to say thanks for posting this info too! Very interesting!
So, does this change in Windows 8.1 possibly explain the sudden intermittent font blurriness that is now occurring in Firefox for some people since upgrading? I have yet to find any other explanation for this problem after a full day of troubleshooting, which started the very minute after I finished my upgrade from 8 to 8.1. I have even uninstalled and reinstalled Firefox, but the shifting, pixelated, blurry fonts still appear every few minutes. The issue occurs does not occur in any other app or program including IE or Chrome, nor in any general system use.
It’s best to keep it at 100% !! But if you have eye problem then make it 150% !!
yes, that’s also how i would handle it, but seeing resolutions increase quite rapidly in the last year, more and more coputers, especially ultrabooks, depend on a rather high scaling percentage. thinking of the kirabook, or installing windows on a retina macbook. also now it seems quite probable that there’ll be even higher resolution ultraportables in the next year, or two. 4k on 13 inch anyone?
getting off topic:
this is exactly why i’m a bit angry at microsoft, instead of working hard on a solution for this problem, they go all in on metro and pat themselves on the back when they introduce new tile-sizes.
cheers for the answers though, guys!
so are there any improvements regarding the results of the scaling? i’m on wxga and win7 now, but if i upgrade to an ultrabook, this might be interesting.
just wondering because i often read about less than perfect scaling on previous versions of windows.
I cannot really say that. Microsoft notes that the handling for high def displays has improved in Windows 8.1 but does not really go into details.