Zhiyi Zhang (@zhiyi) commented about dlls/user32/tests/sysparams.c:
- displaychange_ok = TRUE; - change_ret = pChangeDisplaySettingsExA(NULL, &mode, NULL, 0, NULL); - WaitForSingleObject(displaychange_sem, 10000); - displaychange_ok = FALSE; - CloseHandle(displaychange_sem); - displaychange_sem = 0; - } + settings.dmBitsPerPel = default_bpp; + settings.dmFields |= DM_BITSPERPEL; + + last_bpp = -1; + change_counter = 0; + displaychange_ok = TRUE; + res = ChangeDisplaySettingsExW( NULL, &settings, NULL, 0, NULL ); + ok( !res, "ChangeDisplaySettingsExW returned %ld\n", res ); + res = WaitForSingleObject( displaychange_sem, 1000 ); I noticed that the timeout here is 1000ms while previous timeouts are 10000ms. Is it possible that the timeout is not enough? Also, when setting identical modes, you might need CDS_RESET. Same for the preceding ChangeDisplaySettingsExW() calls.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/844#note_9100