From: "Zhiyi Zhang (@zhiyi)" Subject: Re: [PATCH 0/5] MR355: win32u: Move more display mode logic out of graphics drivers. Message-Id: Date: Fri, 01 Jul 2022 07:46:56 +0000 In-Reply-To: References: Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c: > if (!NtUserEnumDisplaySettings( devname, ENUM_CURRENT_SETTINGS, ¤t_mode, 0 )) current_mode.dmSize = 0; > if (!(devmode = validate_display_settings( &default_mode, ¤t_mode, devmode ))) return DISP_CHANGE_BADMODE; > > - ret = user_driver->pChangeDisplaySettingsEx( device_name, devmode, hwnd, flags, lparam ); > - if (ret != DISP_CHANGE_SUCCESSFUL) > - ERR( "Changing %s display settings returned %d.\n", debugstr_us(devname), ret ); > + ret = user_driver->pChangeDisplaySettingsEx( device_name, devmode, hwnd, flags | CDS_TEST, lparam ); > + if (!ret && (flags & CDS_UPDATEREGISTRY) && !write_registry_settings( adapter_path, devmode )) ret = DISP_CHANGE_NOTUPDATED; > + else if (flags & (CDS_TEST | CDS_NORESET)) ret = DISP_CHANGE_SUCCESSFUL; > + else ret = user_driver->pChangeDisplaySettingsEx( device_name, devmode, hwnd, flags, lparam ); I think you can remove CDS_UPDATEREGISTRY here. Otherwise, user_driver->pChangeDisplaySettingsEx() will try to find the full mode again. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/355#note_3098