This completes the implementation of display setting virtualization using DPI scaling, ie: Proton fshack done right.
There's various things to tweak still, and this will stay as an experimental feature with X11 (Wayland actually needs it to implement display mode change so it's as experimental as the driver):
- Fullscreen windows aren't padded when the display mode aspect ratio doesn't match the physical one. - Dragging a window over another monitor with a different raw DPI is broken, and window dimensions may flicker/break, this will need the winex11 window configure refactoring (ie: https://gitlab.winehq.org/wine/wine/-/merge_requests/6731 and the other changes in https://gitlab.winehq.org/wine/wine/-/merge_requests/6569) to be fixed. - DPI scaling is implemented with NtGdiStretchBlt, which is suboptimal, may not be performing well, and present sync is reportedly broken with GL/VK. - A couple of other more minor tweaks.