Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
+ DEVMODEW *mode; + + if (is_detached_mode( devmode )) return devmode; + + for (mode = modes; mode && mode->dmSize; mode = NEXT_DEVMODEW(mode)) + { + if ((devmode->dmFields & DM_BITSPERPEL) && devmode->dmBitsPerPel && devmode->dmBitsPerPel != mode->dmBitsPerPel) + continue; + if ((devmode->dmFields & DM_PELSWIDTH) && devmode->dmPelsWidth != mode->dmPelsWidth) + continue; + if ((devmode->dmFields & DM_PELSHEIGHT) && devmode->dmPelsHeight != mode->dmPelsHeight) + continue; + if ((devmode->dmFields & DM_DISPLAYFREQUENCY) && devmode->dmDisplayFrequency != mode->dmDisplayFrequency + && devmode->dmDisplayFrequency > 1 && mode->dmDisplayFrequency) + continue; + if ((devmode->dmFields & DM_DISPLAYORIENTATION) && devmode->dmDisplayOrientation != mode->dmDisplayOrientation) This changes the behavior of winemac.drv. winemac.drv supports additional DM_DISPLAYFLAGS and DM_DISPLAYFIXEDOUTPUT. Not comparing those fields when DM_DISPLAYFLAGS or DM_DISPLAYFIXEDOUTPUT is present will lose the application-specified mode settings.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/576#note_6316