https://bugs.winehq.org/show_bug.cgi?id=51420
--- Comment #51 from Sveinar Søpler cybermax@dexter.no --- (In reply to Henri Verbeet from comment #50)
In case you're interested in the details about how this works in the Nouveau KMS driver, some key functions there are nouveau_connector_scaler_modes_add() and nouveau_conn_atomic_set_property() in the generic code, and then for e.g. GF110 nv50_head_atomic_check() and head907d_view().
As i found out about my Asus monitor, it actually do NOT support 1920x1080 without GPU scaling.. This is why it is not listed by default with xrandr.
I do not know what xrandr would list for my monitor when using nouveau, but i did find out how to make the nVidia driver fill in non-edid modes.
Option "ModeValidation" "AllowNonEdidModes"
This makes the xorg init "validate modes" that are not listed in EDID, and i ended up with a lot more modes including 1920x1080. If these modes actually work as intended or not, i am a bit unsure of, cos i had some mouse-coordinate issues when i tested a D3D11 app with my newfound resolution of 1920x1080. It was scaling cos my monitor showed it used 2560x1440.
It kinda seem as nouveau does somewhat of the same as this, by creating scaling modes not found in EDID. The nVidia driver does not do this by default, and when using the setting above it may not be doing a good job at it either. It will require some more testing to figure out if all fullscreen scaling resolutions in various D3D games/apps works better for nouveau tho.
"It's a feature! Not a bug!" :)