Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
+ if (!adapter->mode_count) continue; + + mode->dmSize = sizeof(DEVMODEW); + if (devname) + { + if (!wcsicmp( devname, adapter->dev.device_name )) + memcpy( mode, fullmode, mode->dmSize + fullmode->dmDriverExtra ); + else + { + if (!(ret = user_driver->pCurrentDisplaySettingsEx( adapter->dev.device_name, mode ))) goto done; + if (!(full = find_display_mode( adapter->modes, mode ))) goto done; + mode->dmDriverExtra = full->dmDriverExtra; + memcpy( mode + 1, full + 1, full->dmDriverExtra ); + } + } + else if (!(ret = read_registry_settings( adapter->config_key, mode ))) goto done; You removed the get_full_mode() code in winex11.drv's apply_display_settings(). This means you lost the dmDriverExtra for modes read from the registry. You still need to call find_display_mode() for modes from the registry.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/576#note_5637