# Windows 10 "Recommended" DPI scaling question



## Chrispy_ (Dec 12, 2019)

So I've been slowly dialling back my fight with windows 8/10 default display scaling as more and more applications, utilities, and webpages become high-DPI aware.

In the past, I've forced custom display scaling settings, and even modified the logpixels registry value with domain GPOs for certain groups of devices but I'm coming to the conclusion that there must be a better way.

I've just spent half an hour setting up a batch of new laptops that have 13" 3200x1600 displays and every time I login as a new user it chooses the (Recommended) display scaling determined by Windows.






In the case of these laptops, it's recommending 250% which is stupid, because that downgrades the effective desktop area to an effective 1280x720 resolution which makes the desktop usable area equivalent to a paltry 720p display. Back in the Windows 7 days, there was even a warning at 720p informing users that some elements of the Windows UI wouldn't fit on the screen! Is there a way to change the (Recommended) setting that windows uses by default for all users of a device? 200% is probably best but both methods I know of are either useless for new users of a (shared pool) laptop, or overly restrictive (users cannot revert to 100% scaling for legacy applications that REQUIRE it to function).

This is a question that has been nagging me for a few years really. I've sent Microsoft feedback before via beta feedback, personal technet post, enterprise support tickets - and never had any response of value.

Essentially, Microsoft determines a scaling factor arbitrarily without any knowledge of how far a typical user of the display will be sitting from it, or what context the display will be used for. All it knows is the resolution and screen size and OBVIOUSLY the default font size can only be sensibly chosen with knowledge of how far the user will be from the display.


----------



## kapone32 (Dec 12, 2019)

This is a common issue with Windows 10. My 4K monitor is defaulted to 300% and my 10080P monitor defaults to 150%. Especially when using dual monitors.


----------



## erixx (Dec 12, 2019)

I have a UDH 32" together with a 7" monitor (not for text, just Aida, etc). My default layout is 100% and it is fine.


----------



## Bill_Bright (Dec 12, 2019)

kapone32 said:


> This is a common issue with Windows 10.


I don't see this as a W10 issue. I've been using multi-monitor setups since Windows 95. The fact of the matter is, operating systems don't communicate directly with the attached monitor(s). Operating systems communicate with the graphics solution (integrated or card), which then talks to the monitor(s). So if there is a display problem, it really lies with the card's drivers. 

I used to always recommend multi-monitor users use a multi-monitor utility such as UltraMon or DisplayFusion) - especially if using dissimilar monitors in the setup. But with Windows 10, I have not found them necessary. 

If you are having problems, I say don't blame Windows. Complain to your card maker.


----------



## Solaris17 (Dec 12, 2019)

Chrispy_ said:


> So I've been slowly dialling back my fight with windows 8/10 default display scaling as more and more applications, utilities, and webpages become high-DPI aware.
> 
> In the past, I've forced custom display scaling settings, and even modified the logpixels registry value with domain GPOs for certain groups of devices but I'm coming to the conclusion that there must be a better way.
> 
> ...



So like do you need to dictate a users scaling resolution? You spoke alot about how much you disliked it. What about your users?


----------



## Chrispy_ (Dec 13, 2019)

Solaris17 said:


> So like do you need to dictate a users scaling resolution? You spoke alot about how much you disliked it. What about your users?


We're a design studio. lots of CAD/CAM and wireframe, so scaling 100/200/300 work for applications without proper high-dpi support but that's it. Additionally the vast majority of the software our staff use is densely toolbar'ed so the viewport/working area diminishes exponentially with each DPI scale increase. At 200% on these laptops (effectively a 1600x900 legacy app resolution) things are already pushing the limits of what's acceptable, but 150% and 175% just looks like ass.

One of the most common questions in conference rooms is "how do I make the font smaller" because the televisions all default to somewhere between 250% and 300% which makes them utterly useless for anything except Powerpoint slides for the partially-blind.

Going back to these laptops though, people will have a range of preferences, and I would guess that the acceptable range for that size and resolution would be somewhere between 150% and 225%. I've been doing this for users ever since highdpi displays first caused them to moan about scaling, and if you can get an integer scaling value that's even vaguely in the right ballpark, people don't even mention it, they're simply happy with how it is.



Bill_Bright said:


> I don't see this as a W10 issue. I've been using multi-monitor setups since Windows 95. The fact of the matter is, operating systems don't communicate directly with the attached monitor(s). Operating systems communicate with the graphics solution (integrated or card), which then talks to the monitor(s). So if there is a display problem, it really lies with the card's drivers.
> 
> I used to always recommend multi-monitor users use a multi-monitor utility such as UltraMon or DisplayFusion) - especially if using dissimilar monitors in the setup. But with Windows 10, I have not found them necessary.
> 
> If you are having problems, I say don't blame Windows. Complain to your card maker.


Uh, no - it has nothing to do with your GPU vendor. Microsoft have stated how it works, but just to make a quick and obvious point, Optimus laptops exhibit the same scaling factor regardless of whether it's an Intel driver or Nvidia driver, and even with no driver (just the Microsoft Basic Display Adapter). Meanwhile, there's huge variation among all the various laptop models using an array of sizes and resolutions yet all sharing a common Intel HD graphics variant and driver.

One of the many Microsoft blogs from the days of Windows 10 preview went into detail about the new high-dpi support and revamped scaling; They stated in no uncertain terms that the optimum (Recommended) scaling value was chosen based on the resolution and physical size. Any display's EDID reports both of those  to the OS and this does not require the GPU driver to get involved (or even be installed) at all.


----------



## evernessince (Dec 13, 2019)

Chrispy_ said:


> We're a design studio. lots of CAD/CAM and wireframe, so scaling 100/200/300 work for applications without proper high-dpi support but that's it. Additionally the vast majority of the software our staff use is densely toolbar'ed so the viewport/working area diminishes exponentially with each DPI scale increase. At 200% on these laptops (effectively a 1600x900 legacy app resolution) things are already pushing the limits of what's acceptable, but 150% and 175% just looks like ass.
> 
> One of the most common questions in conference rooms is "how do I make the font smaller" because the televisions all default to somewhere between 250% and 300% which makes them utterly useless for anything except Powerpoint slides for the partially-blind.
> 
> ...



I know how bad windows can be at DPI scaling.  On a 4K screen, thumbnails can be rather small as windows does not allow you to scale them above 256 x 256.

Have you tried right clicking on the application icon >properties > compatibility > Change High DPI Options?


----------



## Chrispy_ (Dec 13, 2019)

Let me reiterate: I know how to handle all of the OS and driver scaling options _myself_.

I'm looking to fix a bad default for *all applications and all users of a device *by changing the OS default. Let's assume these laptops are going to be used by 250 people over their lifespan. I would estimate that 100 of them have no idea how to fix DPI scaling without assistance, and another 100 of them will soldier on with the terrible default and then say that it was awful when they return it. It absolutely has to be a solution that applies the correct scaling value to the laptop display for all future users, even those that have never logged on before. I can't lock the dpi scale because the power users will want it available, and I can't use the override because then it'll mess with the externals displays that the laptop gets connected to for presentations.

The more I think about this, the more I'm guessing that some dumb factor is hardcoded into the OS and I should just find a way to edit the EDID of the laptop's own display and tell windows that the display is actually physically bigger that it really is as a kludge workaround for shortsighted OS design.


----------



## erixx (Dec 13, 2019)

As a translator (not for English, rest in peace, lol), I can add this:  there are industry wide used programs like Trados or MemoQ that have not been able during 10 or more years to update their interfaces/engines and make them work well with high res monitors. Not MS fault. Their fault. Using Windows Compatibility options helps somewhat. But in the cases you describe above I can imagine the nightmare.


----------



## Vayra86 (Dec 13, 2019)

Bill_Bright said:


> I don't see this as a W10 issue. I've been using multi-monitor setups since Windows 95. The fact of the matter is, operating systems don't communicate directly with the attached monitor(s). Operating systems communicate with the graphics solution (integrated or card), which then talks to the monitor(s). So if there is a display problem, it really lies with the card's drivers.
> 
> I used to always recommend multi-monitor users use a multi-monitor utility such as UltraMon or DisplayFusion) - especially if using dissimilar monitors in the setup. But with Windows 10, I have not found them necessary.
> 
> If you are having problems, I say don't blame Windows. Complain to your card maker.



Wh.... its an option Windows offers, not the GPU vendor or the driver. We're talking about the choice of what is supposed to be recommended _by Windows when it detects a display resolution. _Windows simply gets that resolution reported to it. Why would the GPU even be in play? It has its own scaling options.

Windows 10 is an improvement but its still not perfect, the OS even has trouble with the sizing of its own UI elements. Its essentially an oversight in the core design of the OS, it uses and/or allows fixed size elements in the UI and in applications everywhere, there are no design rules like you have them on for example IOS or Android. But it also needs to allow that or we'd lose all our legacy.


----------



## Bill_Bright (Dec 13, 2019)

Vayra86 said:


> Wh.... its an option Windows offers
> 
> Windows simply gets that resolution reported to it.
> 
> Why would the GPU even be in play?



Where do you think Windows learns which resolutions are supported? You said it yourself - that information is reported to Windows.  If you don't install any graphics drivers, including EDID data for the specific monitors, Windows will use the Generic PnP Monitor drivers it has natively, right? And then it will display all the resolutions Windows supports. But as soon as you install the specific drivers, what happens? In the display settings, only the resolutions supported by the connected monitor are display (the others are grayed out or not even shown). 

Windows (all operating systems) has to know how to communicate with the graphics solution natively. And the graphics solution has to know how to communicate with the OS and with all monitors at some basic/generic level. And, in turn, all monitors must know how to communicate at some basic/generic level. If they didn't, we could not see anything to install the OS from scratch. We could not see anything when entering the BIOS setup menu. 

So when you install the graphics card drivers and EDID information, that information is reported to the OS. 

If Windows scales improperly, it is because the graphics solution (or running program) failed to tell Windows how to display that image. So then the OS jumps in and (with a guess) will attempt to scale it properly. This puts the OS between a rock and hard place. 

See: Display Scaling changes fro the Windows 10 Anniversay Update.


> *Why doesn’t Microsoft Just Fix Display Scaling on Windows?*
> 
> This is a valid question that many of us have asked ourselves when joining teams that are working on this problem space. The main challenge that we face, however, is that many, many, applications that run on Windows are using a design pattern where they ask Windows for information about the system when they launch (questions such as how big the display is, what is the display scale factor, what is the size of the font that should be used for default text, as well as others) and then cache this information and never expect it to change. Because of this, even if Windows did start giving these applications information about a DPI change, most, if not all, of these applications wouldn’t even be asking and therefore would not respond correctly. Furthermore, if Windows did start providing dynamic display-scale-factor-related information this would be a nightmare for application compatibility and would probably cause more problems for application stability than it would help in terms of high DPI display issues.


----------

