On Thu Aug 4 07:47:53 2022 +0000, Zhiyi Zhang wrote:
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.
As `validate_display_settings` gets a full mode pointer from the adapter mode list copy, it then writes the full display settings to the registry.
There's a mistake here where mode doesn't have `dmDriverExtra` set, so indeed `read_registry_settings` doesn't read it back, but it could.
I'm not completely sure that it should though, as only the available mode list is refreshed when display devices are updated, and the `ENUM_REGISTRY_SETTINGS` index would then have a stale driver extra data after an update.
I guess it's better to always lookup a full mode again here.