In Windows 10 you can scale globally, and change this on a per-application basis:
I use scaling to make games appear a reasonable size on a 4k monitor. A recent Factorio update caused scaling to break, which I asked about over on Arquade, so I changed the scaling from 'System (Enhanced)' to 'System' to mitigate the issue.
However, I am not sure what the technical difference between these options are. There is some explanation in an MS Answers answer by Louie Del:
There are lots of improvements and upgrade made in the Windows 10 Anniversary Update, this includes the new DPI options with enhanced feature. To give you an overview of the settings under Override high DPI scaling behavior, you can check the following settings and its effects:
- The Application setting was previously referred to as "Disable display scaling on high-DPI settings". It also forces the process to run in per-monitor DPI awareness mode. Windows will be prompted not to bitmap stretch UI (User Interface) from the exe in question when the DPI changes.
- The System setting will bitmap stretch the UI when the DPI changes.
- The System (Enhanced) setting is for applications that are GDI-based Windows or Graphics Device Interface (GDI) scaling. It will DPI scale the application on a per-monitor basis. This means that application will definitely become per-monitor DPI aware.
So it seems:
- Application disables scaling and leaves it to the application to handle it's own resolution - like setting an in-game resolution
- System does a simple bitmap stretch (how?)
- System (Enhanced) scales in a DPI-aware basis, and may scale differently per monitor (again, how?)
If the above understanding is correct, it's still pretty superficial: how are the different types of scaling actually done; eg are the results filtered/interpolated, is it done on the CPU or GPU, etc? As such, is there any performance difference between the options?
I'd quite like to know why the change to Factorio caused it to stop working on one setting; and why it works fine with other games. I'd speculate that in Factorio's case it scaled the window part without scaling the game part, but I don't know the technical details. Knowing more technical details about how this scaling is handled would help inform me on this.