[PATCH 0/5] MR355: win32u: Move more display mode logic out of graphics drivers.
Zhiyi Zhang (@zhiyi)
wine at gitlab.winehq.org
Fri Jul 1 02:46:56 CDT 2022
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
More information about the wine-devel
mailing list