[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, &current_mode, 0 )) current_mode.dmSize = 0;
>      if (!(devmode = validate_display_settings( &default_mode, &current_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