This MR improves driver support for scaled HiDPI displays, by respecting the application/window DPI.
Since we don't support per-monitor DPI information and awareness modes yet, the user should set the Wine system DPI to match the DPI/scale of the display the app will be running on, for best results.
Here is how things look with a few scenarios:
1. Screen scaled at 2x, application at 96dpi (e.g., dpi unaware apps) => the compositor automatically scales the surface:

2. Screen scaled at 2x, application at 192dpi (dpi matches compositor scale) => no compositor scaling:

3. Screen scaled at 1x, application at 96dpi (dpi matches compositor scale) => no compositor scaling:

4. Screen scaled at 1x, application at 192dpi, not typically used, just wanted to show what happens with such a mismatch:

Thanks!
--
v4: winewayland.drv: Ignore spurious size hints.
winewayland.drv: Present cursors with the correct scale.
winewayland.drv: Refactor cursor code to prepare for scaling support.
winewayland.drv: Present surfaces with the correct scale.
winewayland.drv: Prepare to handle different coordinate spaces.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4203