Unlike 8.1 you do have display independent scaling though, so you can have your main monitor at 100%, secondary at 125 and third at 200% or whatever.
I wish that more apps used vector-based rasterization for assets instead of bitmap-based, which is what causes that blurriness as far as I know. At the very least, I do hear about more apps over time becoming high-DPI aware and gaining support for it which is positive. Even though Windows has supported it for a while, nobody really cared for the longest time and added support for it.
Vector graphics have nothing to do with it. Windows programs have actually supported DPI scaling for several years, but Windows 8.1 introduced a new DPI scaling API that supports on-the-fly DPI changes (moving windows between displays with different dpis) instead of only checking the dpi at launch.
The problem is that programs that don't implement the new API are rendered at 100% and have their entire window scaled up using bilinear filter. You can exempt individual executables from this in the compatibility tab, which causes them to use the old fixed DPI scaling, but the option to do it by default is gone. To make matters worse, executables that ship with Windows like resmon.exe, mmc.exe and even cmd.exe don't support dpi scaling and don't have a compatibility tab, so they are
always blurry.
I used 8.1 at 125% scaling exclusively and enabled the legacy scaling ("use the same scaling for all displays" setting, gone in Windows 10) and the vast majority of the programs I used had no problems whatsoever with it and looked sharp. Yes, bitmap elements would get blurry, but having the entire window blurry is far worse IMO. Here's some screenshots, showing the same program with the "new" DPI scaling versus the "old" one (using the compatibility settings):
Full view:
Comparing regedit.exe and mmc.exe:
BTW, all the new DPI scaling does in win32 applications is launch the app using the highest DPI value from the active displays and downscale the window when it's moved to a lower DPI window. The actual in-app scaling works exactly the same as the "legacy" DPI scaling, so it baffles me MS can't simply do this for all apps and use the compatibility settings to "opt-in" to blurry windows for the rare case of an app that breaks down at higher DPIs.
Here's an example. The left monitor is at 100% and the right one is at 150%. You can see three different ways of handling DPI scaling here:
- Windows Explorer actually switches it's internal DPI on the fly, re-drawing its UI elements and remaining sharp in both displays. This is the full support for flexible DPI scaling, having the code react to DPI changes. Very few win32 apps (even among those that ship with Windows) support this mode. All Universal apps and Windows Store apps support this by default, including Edge.
- Notepad++ is sharp on the 150% display, but a bit fuzzy on the 100% display. It supports basic flexible DPI scaling by simply using a flag in its manifest file. The code does not react to DPI changes and Windows always renders the app at the highest display DPI. This means it will look sharp if you have a single high DPI display or use the same DPI on all displays.
- The Resource Monitor (resmon.exe) is the opposite of Notepad++: it looks sharp on the 100% display but looks fuzzy on the 150% display. The app manifest does not report high-DPI support, so the app is always rendered at 100% and scaled up to match the display DPI. It will only look sharp if your display DPI is set to 100%, regardless of single or multi display setup.
If I run an app with the "disable High DPI support" compatibility flag, it will be rendered at the highest display DPI and will not be scaled down when moved to the lower DPI display.