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.