http://bugs.winehq.org/show_bug.cgi?id=31245
--- Comment #5 from Jonathan Strander mblackwell1024@gmail.com 2012-07-23 20:31:13 CDT --- I talked to a NVIDIA dev and there's multiple things at play here. Partially NVIDIA and partially a combination of Wine and a combination of GNOME. It's all related however. I'll try and break it down:
First, with "org.gnome.settings-daemon.plugins.xrandr active" set to true (check dconf-editor) it appears that for whatever reason the mode is restored as soon as its set by another application (likely a GNOME bug but maybe exacerbated by the NVIDIA driver). There's probably multiple things at work there but setting it to "false" will allow Wine to set the resolution.
As far as not using any metamodes/gpu-scaling that has to do with how Wine uses Randr 1.3 directly. Doing this bypasses anything the GPU driver would like to do. The developer I spoke to didn't specify how to correct/work around this behavior however, perhaps a talk with NVIDIA is in order.
A possible workaround for now (without any ./configure switches or registry keys that I noticed to do the same) would be something like:
in dlls/winex11.drv/xrandr.c +#ifdef HAVE_XRRGETSCREENRESOURCES + if (ret >= 2 && (major > 1 || (major == 1 && minor >= 2))) + xrandr12_init_modes(); + else +#endif + xrandr10_init_modes();
Removing the ifdef block.